parser: update generated files
[nit.git] / src / parser / parser.nit
index cf7724b..9e11d70 100644 (file)
@@ -229,1221 +229,1735 @@ class Parser
                        new ReduceAction74(5),
                        new ReduceAction75(5),
                        new ReduceAction76(5),
-                       new ReduceAction77(5),
+                       new ReduceAction75(5),
                        new ReduceAction78(5),
                        new ReduceAction79(5),
-                       new ReduceAction80(5),
+                       new ReduceAction78(5),
                        new ReduceAction81(5),
                        new ReduceAction82(5),
                        new ReduceAction83(5),
                        new ReduceAction84(5),
-                       new ReduceAction85(5),
+                       new ReduceAction83(5),
                        new ReduceAction86(5),
                        new ReduceAction87(5),
-                       new ReduceAction88(5),
+                       new ReduceAction86(5),
                        new ReduceAction89(5),
                        new ReduceAction90(5),
                        new ReduceAction91(5),
                        new ReduceAction92(5),
-                       new ReduceAction93(5),
+                       new ReduceAction91(5),
                        new ReduceAction94(5),
                        new ReduceAction95(5),
-                       new ReduceAction96(5),
+                       new ReduceAction94(5),
                        new ReduceAction97(5),
                        new ReduceAction98(5),
                        new ReduceAction99(5),
                        new ReduceAction100(5),
-                       new ReduceAction101(5),
+                       new ReduceAction99(5),
                        new ReduceAction102(5),
                        new ReduceAction103(5),
-                       new ReduceAction104(5),
+                       new ReduceAction102(5),
                        new ReduceAction105(5),
                        new ReduceAction106(5),
                        new ReduceAction107(5),
                        new ReduceAction108(5),
-                       new ReduceAction109(5),
+                       new ReduceAction107(5),
                        new ReduceAction110(5),
                        new ReduceAction111(5),
-                       new ReduceAction112(5),
+                       new ReduceAction110(5),
                        new ReduceAction113(5),
                        new ReduceAction114(5),
                        new ReduceAction115(5),
                        new ReduceAction116(5),
-                       new ReduceAction117(5),
+                       new ReduceAction115(5),
                        new ReduceAction118(5),
                        new ReduceAction119(5),
-                       new ReduceAction120(5),
+                       new ReduceAction118(5),
                        new ReduceAction121(5),
                        new ReduceAction122(5),
                        new ReduceAction123(5),
                        new ReduceAction124(5),
-                       new ReduceAction125(5),
+                       new ReduceAction123(5),
                        new ReduceAction126(5),
                        new ReduceAction127(5),
-                       new ReduceAction128(5),
+                       new ReduceAction126(5),
                        new ReduceAction129(5),
                        new ReduceAction130(5),
                        new ReduceAction131(5),
                        new ReduceAction132(5),
-                       new ReduceAction133(5),
+                       new ReduceAction131(5),
                        new ReduceAction134(5),
                        new ReduceAction135(5),
-                       new ReduceAction136(5),
-                       new ReduceAction137(6),
-                       new ReduceAction138(6),
-                       new ReduceAction139(6),
-                       new ReduceAction140(6),
-                       new ReduceAction141(6),
-                       new ReduceAction142(6),
-                       new ReduceAction143(7),
-                       new ReduceAction144(7),
-                       new ReduceAction145(8),
-                       new ReduceAction146(9),
-                       new ReduceAction147(9),
-                       new ReduceAction148(9),
-                       new ReduceAction149(9),
-                       new ReduceAction150(10),
-                       new ReduceAction151(10),
-                       new ReduceAction152(11),
-                       new ReduceAction153(12),
-                       new ReduceAction154(12),
-                       new ReduceAction155(12),
-                       new ReduceAction156(12),
-                       new ReduceAction157(12),
-                       new ReduceAction158(12),
-                       new ReduceAction159(12),
-                       new ReduceAction160(12),
-                       new ReduceAction161(12),
-                       new ReduceAction162(12),
-                       new ReduceAction163(12),
-                       new ReduceAction164(12),
-                       new ReduceAction165(12),
-                       new ReduceAction166(12),
-                       new ReduceAction167(12),
-                       new ReduceAction168(12),
-                       new ReduceAction169(12),
-                       new ReduceAction170(12),
-                       new ReduceAction171(12),
-                       new ReduceAction172(12),
-                       new ReduceAction173(12),
-                       new ReduceAction174(12),
-                       new ReduceAction175(12),
-                       new ReduceAction176(12),
-                       new ReduceAction177(12),
-                       new ReduceAction178(12),
-                       new ReduceAction179(12),
-                       new ReduceAction180(12),
-                       new ReduceAction181(12),
-                       new ReduceAction182(12),
-                       new ReduceAction183(12),
-                       new ReduceAction184(12),
-                       new ReduceAction185(12),
-                       new ReduceAction186(12),
-                       new ReduceAction187(12),
-                       new ReduceAction188(12),
-                       new ReduceAction189(12),
-                       new ReduceAction190(12),
-                       new ReduceAction191(12),
-                       new ReduceAction192(12),
-                       new ReduceAction193(12),
-                       new ReduceAction194(12),
-                       new ReduceAction195(12),
-                       new ReduceAction196(12),
-                       new ReduceAction197(12),
-                       new ReduceAction198(12),
-                       new ReduceAction199(12),
-                       new ReduceAction200(12),
-                       new ReduceAction201(12),
-                       new ReduceAction202(12),
-                       new ReduceAction203(12),
-                       new ReduceAction204(12),
-                       new ReduceAction205(12),
-                       new ReduceAction206(12),
-                       new ReduceAction207(12),
-                       new ReduceAction208(12),
-                       new ReduceAction209(12),
-                       new ReduceAction210(12),
-                       new ReduceAction211(12),
-                       new ReduceAction212(12),
-                       new ReduceAction213(12),
-                       new ReduceAction214(12),
-                       new ReduceAction215(12),
-                       new ReduceAction216(12),
-                       new ReduceAction217(12),
-                       new ReduceAction218(12),
-                       new ReduceAction219(12),
-                       new ReduceAction220(12),
-                       new ReduceAction221(12),
-                       new ReduceAction222(12),
-                       new ReduceAction223(12),
-                       new ReduceAction224(12),
-                       new ReduceAction225(12),
-                       new ReduceAction226(12),
-                       new ReduceAction227(12),
-                       new ReduceAction228(12),
-                       new ReduceAction229(12),
-                       new ReduceAction230(12),
-                       new ReduceAction231(12),
-                       new ReduceAction232(12),
-                       new ReduceAction233(12),
-                       new ReduceAction234(12),
-                       new ReduceAction235(12),
-                       new ReduceAction236(12),
-                       new ReduceAction237(12),
-                       new ReduceAction238(12),
-                       new ReduceAction239(12),
-                       new ReduceAction240(12),
-                       new ReduceAction241(12),
-                       new ReduceAction242(12),
-                       new ReduceAction243(12),
-                       new ReduceAction244(12),
-                       new ReduceAction245(12),
-                       new ReduceAction246(12),
-                       new ReduceAction247(12),
-                       new ReduceAction248(12),
-                       new ReduceAction249(12),
-                       new ReduceAction250(12),
-                       new ReduceAction251(12),
-                       new ReduceAction252(12),
-                       new ReduceAction253(12),
-                       new ReduceAction254(12),
-                       new ReduceAction255(12),
-                       new ReduceAction256(12),
-                       new ReduceAction257(12),
-                       new ReduceAction258(12),
-                       new ReduceAction259(12),
-                       new ReduceAction260(12),
-                       new ReduceAction261(12),
-                       new ReduceAction262(12),
-                       new ReduceAction263(12),
-                       new ReduceAction264(12),
-                       new ReduceAction265(12),
-                       new ReduceAction266(12),
-                       new ReduceAction267(12),
-                       new ReduceAction268(12),
-                       new ReduceAction269(12),
-                       new ReduceAction270(12),
-                       new ReduceAction271(12),
-                       new ReduceAction272(12),
-                       new ReduceAction273(12),
-                       new ReduceAction274(12),
-                       new ReduceAction275(12),
-                       new ReduceAction276(12),
-                       new ReduceAction277(12),
-                       new ReduceAction278(12),
-                       new ReduceAction279(12),
-                       new ReduceAction280(12),
-                       new ReduceAction281(12),
-                       new ReduceAction282(12),
-                       new ReduceAction283(12),
-                       new ReduceAction284(12),
-                       new ReduceAction285(12),
-                       new ReduceAction286(12),
-                       new ReduceAction287(12),
-                       new ReduceAction288(12),
-                       new ReduceAction289(12),
-                       new ReduceAction290(12),
-                       new ReduceAction291(12),
-                       new ReduceAction292(12),
-                       new ReduceAction293(12),
-                       new ReduceAction294(12),
-                       new ReduceAction295(12),
-                       new ReduceAction296(12),
-                       new ReduceAction297(12),
-                       new ReduceAction298(12),
-                       new ReduceAction299(12),
-                       new ReduceAction300(12),
-                       new ReduceAction301(12),
-                       new ReduceAction302(12),
-                       new ReduceAction303(12),
-                       new ReduceAction304(12),
-                       new ReduceAction305(12),
-                       new ReduceAction306(12),
-                       new ReduceAction307(12),
-                       new ReduceAction308(12),
-                       new ReduceAction309(12),
-                       new ReduceAction310(12),
-                       new ReduceAction311(12),
-                       new ReduceAction312(12),
-                       new ReduceAction313(12),
-                       new ReduceAction314(12),
-                       new ReduceAction315(12),
-                       new ReduceAction316(12),
-                       new ReduceAction317(12),
-                       new ReduceAction318(12),
-                       new ReduceAction319(12),
-                       new ReduceAction320(12),
-                       new ReduceAction321(13),
-                       new ReduceAction322(13),
-                       new ReduceAction321(14),
-                       new ReduceAction324(14),
-                       new ReduceAction325(15),
-                       new ReduceAction326(15),
-                       new ReduceAction327(16),
-                       new ReduceAction328(16),
-                       new ReduceAction329(17),
-                       new ReduceAction330(17),
-                       new ReduceAction331(18),
-                       new ReduceAction332(18),
-                       new ReduceAction333(18),
-                       new ReduceAction334(18),
-                       new ReduceAction335(19),
-                       new ReduceAction336(19),
-                       new ReduceAction337(19),
-                       new ReduceAction338(19),
-                       new ReduceAction339(19),
-                       new ReduceAction340(19),
-                       new ReduceAction341(19),
-                       new ReduceAction342(19),
-                       new ReduceAction343(19),
-                       new ReduceAction344(19),
-                       new ReduceAction345(19),
-                       new ReduceAction346(19),
-                       new ReduceAction347(19),
-                       new ReduceAction348(19),
-                       new ReduceAction349(19),
-                       new ReduceAction350(19),
-                       new ReduceAction351(19),
-                       new ReduceAction352(19),
-                       new ReduceAction353(20),
-                       new ReduceAction354(20),
-                       new ReduceAction355(20),
-                       new ReduceAction356(20),
-                       new ReduceAction357(20),
-                       new ReduceAction358(20),
-                       new ReduceAction359(20),
-                       new ReduceAction360(20),
-                       new ReduceAction361(20),
-                       new ReduceAction362(20),
-                       new ReduceAction363(20),
-                       new ReduceAction364(20),
-                       new ReduceAction365(21),
-                       new ReduceAction366(21),
-                       new ReduceAction367(21),
-                       new ReduceAction368(21),
-                       new ReduceAction369(21),
-                       new ReduceAction370(21),
-                       new ReduceAction371(22),
-                       new ReduceAction372(22),
-                       new ReduceAction373(23),
-                       new ReduceAction374(24),
-                       new ReduceAction375(24),
-                       new ReduceAction376(24),
-                       new ReduceAction377(24),
-                       new ReduceAction378(24),
-                       new ReduceAction379(24),
-                       new ReduceAction380(25),
-                       new ReduceAction381(26),
-                       new ReduceAction382(26),
-                       new ReduceAction383(26),
-                       new ReduceAction384(26),
-                       new ReduceAction385(26),
-                       new ReduceAction386(26),
-                       new ReduceAction387(27),
-                       new ReduceAction388(28),
-                       new ReduceAction389(28),
-                       new ReduceAction390(29),
-                       new ReduceAction391(30),
-                       new ReduceAction391(30),
-                       new ReduceAction393(30),
-                       new ReduceAction394(31),
-                       new ReduceAction395(31),
-                       new ReduceAction396(31),
-                       new ReduceAction397(32),
-                       new ReduceAction398(32),
-                       new ReduceAction399(32),
-                       new ReduceAction400(33),
-                       new ReduceAction401(34),
-                       new ReduceAction402(34),
-                       new ReduceAction403(35),
-                       new ReduceAction404(36),
-                       new ReduceAction405(36),
-                       new ReduceAction406(36),
-                       new ReduceAction407(36),
-                       new ReduceAction408(36),
-                       new ReduceAction409(36),
-                       new ReduceAction410(36),
-                       new ReduceAction411(36),
-                       new ReduceAction412(37),
-                       new ReduceAction413(37),
-                       new ReduceAction414(38),
-                       new ReduceAction414(39),
-                       new ReduceAction416(40),
-                       new ReduceAction417(40),
-                       new ReduceAction418(40),
-                       new ReduceAction419(40),
-                       new ReduceAction420(41),
-                       new ReduceAction421(41),
-                       new ReduceAction422(42),
-                       new ReduceAction423(42),
-                       new ReduceAction424(43),
-                       new ReduceAction425(43),
-                       new ReduceAction416(44),
-                       new ReduceAction419(45),
-                       new ReduceAction419(45),
-                       new ReduceAction429(45),
-                       new ReduceAction430(45),
-                       new ReduceAction431(45),
-                       new ReduceAction432(45),
-                       new ReduceAction433(45),
-                       new ReduceAction434(45),
-                       new ReduceAction435(45),
-                       new ReduceAction436(45),
-                       new ReduceAction437(45),
-                       new ReduceAction438(45),
-                       new ReduceAction439(45),
-                       new ReduceAction419(45),
-                       new ReduceAction419(45),
-                       new ReduceAction419(45),
-                       new ReduceAction419(45),
-                       new ReduceAction419(45),
-                       new ReduceAction419(45),
-                       new ReduceAction446(45),
-                       new ReduceAction447(45),
-                       new ReduceAction448(45),
-                       new ReduceAction449(45),
-                       new ReduceAction450(45),
-                       new ReduceAction451(45),
-                       new ReduceAction452(45),
-                       new ReduceAction453(45),
-                       new ReduceAction454(45),
-                       new ReduceAction455(46),
-                       new ReduceAction456(47),
-                       new ReduceAction457(47),
-                       new ReduceAction458(48),
-                       new ReduceAction459(48),
-                       new ReduceAction460(48),
-                       new ReduceAction461(48),
-                       new ReduceAction462(48),
-                       new ReduceAction463(48),
-                       new ReduceAction464(48),
-                       new ReduceAction465(48),
-                       new ReduceAction466(48),
-                       new ReduceAction467(49),
-                       new ReduceAction468(49),
-                       new ReduceAction469(49),
-                       new ReduceAction470(49),
-                       new ReduceAction471(49),
-                       new ReduceAction472(49),
-                       new ReduceAction473(50),
-                       new ReduceAction474(50),
-                       new ReduceAction475(51),
-                       new ReduceAction476(52),
-                       new ReduceAction477(52),
-                       new ReduceAction478(52),
-                       new ReduceAction479(52),
-                       new ReduceAction480(52),
-                       new ReduceAction481(52),
-                       new ReduceAction482(52),
-                       new ReduceAction483(52),
-                       new ReduceAction484(53),
-                       new ReduceAction485(53),
-                       new ReduceAction486(53),
-                       new ReduceAction487(53),
-                       new ReduceAction488(53),
-                       new ReduceAction489(53),
-                       new ReduceAction490(53),
-                       new ReduceAction491(53),
-                       new ReduceAction492(53),
-                       new ReduceAction493(53),
-                       new ReduceAction494(54),
-                       new ReduceAction495(54),
-                       new ReduceAction496(55),
-                       new ReduceAction497(55),
-                       new ReduceAction498(56),
-                       new ReduceAction499(56),
-                       new ReduceAction500(56),
-                       new ReduceAction501(56),
-                       new ReduceAction502(56),
-                       new ReduceAction416(57),
-                       new ReduceAction418(57),
-                       new ReduceAction505(58),
-                       new ReduceAction506(58),
-                       new ReduceAction507(59),
-                       new ReduceAction508(59),
-                       new ReduceAction509(60),
-                       new ReduceAction510(60),
-                       new ReduceAction511(60),
-                       new ReduceAction512(60),
-                       new ReduceAction513(61),
-                       new ReduceAction514(61),
-                       new ReduceAction515(61),
-                       new ReduceAction516(61),
-                       new ReduceAction517(62),
-                       new ReduceAction419(63),
-                       new ReduceAction448(63),
-                       new ReduceAction449(63),
-                       new ReduceAction521(63),
-                       new ReduceAction419(64),
-                       new ReduceAction523(64),
-                       new ReduceAction419(65),
-                       new ReduceAction525(65),
-                       new ReduceAction526(65),
-                       new ReduceAction527(65),
-                       new ReduceAction419(66),
-                       new ReduceAction529(66),
-                       new ReduceAction419(67),
-                       new ReduceAction531(67),
-                       new ReduceAction532(67),
-                       new ReduceAction533(67),
-                       new ReduceAction534(67),
-                       new ReduceAction535(67),
-                       new ReduceAction536(67),
-                       new ReduceAction537(67),
-                       new ReduceAction538(67),
-                       new ReduceAction539(67),
-                       new ReduceAction540(67),
-                       new ReduceAction541(67),
-                       new ReduceAction419(68),
-                       new ReduceAction543(68),
-                       new ReduceAction544(68),
-                       new ReduceAction419(69),
-                       new ReduceAction546(69),
-                       new ReduceAction547(69),
-                       new ReduceAction548(69),
-                       new ReduceAction419(70),
-                       new ReduceAction550(70),
-                       new ReduceAction551(70),
-                       new ReduceAction419(71),
-                       new ReduceAction553(71),
-                       new ReduceAction554(71),
-                       new ReduceAction555(71),
-                       new ReduceAction556(72),
-                       new ReduceAction557(72),
-                       new ReduceAction446(72),
-                       new ReduceAction447(72),
-                       new ReduceAction450(72),
-                       new ReduceAction451(72),
-                       new ReduceAction452(72),
-                       new ReduceAction453(72),
-                       new ReduceAction564(72),
-                       new ReduceAction565(72),
-                       new ReduceAction566(72),
-                       new ReduceAction567(72),
-                       new ReduceAction568(72),
-                       new ReduceAction569(72),
-                       new ReduceAction570(72),
-                       new ReduceAction571(72),
-                       new ReduceAction572(72),
-                       new ReduceAction573(72),
-                       new ReduceAction574(72),
-                       new ReduceAction575(72),
-                       new ReduceAction576(72),
-                       new ReduceAction577(72),
-                       new ReduceAction578(72),
-                       new ReduceAction579(72),
-                       new ReduceAction580(72),
-                       new ReduceAction581(72),
-                       new ReduceAction582(72),
-                       new ReduceAction583(72),
-                       new ReduceAction584(72),
-                       new ReduceAction585(72),
-                       new ReduceAction586(72),
-                       new ReduceAction587(72),
-                       new ReduceAction419(72),
-                       new ReduceAction589(72),
-                       new ReduceAction590(72),
-                       new ReduceAction591(72),
-                       new ReduceAction592(72),
-                       new ReduceAction593(73),
-                       new ReduceAction594(73),
-                       new ReduceAction595(73),
-                       new ReduceAction596(73),
-                       new ReduceAction597(74),
-                       new ReduceAction598(75),
-                       new ReduceAction597(76),
-                       new ReduceAction600(77),
-                       new ReduceAction601(78),
-                       new ReduceAction602(79),
-                       new ReduceAction603(79),
-                       new ReduceAction604(80),
-                       new ReduceAction605(80),
-                       new ReduceAction606(80),
-                       new ReduceAction607(80),
-                       new ReduceAction608(81),
-                       new ReduceAction609(82),
-                       new ReduceAction610(82),
-                       new ReduceAction608(83),
-                       new ReduceAction612(84),
-                       new ReduceAction613(84),
-                       new ReduceAction614(84),
-                       new ReduceAction615(84),
-                       new ReduceAction616(84),
-                       new ReduceAction617(85),
-                       new ReduceAction618(86),
-                       new ReduceAction619(86),
-                       new ReduceAction620(87),
-                       new ReduceAction621(88),
-                       new ReduceAction622(88),
-                       new ReduceAction622(88),
-                       new ReduceAction624(88),
-                       new ReduceAction625(89),
-                       new ReduceAction626(89),
-                       new ReduceAction627(89),
-                       new ReduceAction628(89),
-                       new ReduceAction629(90),
-                       new ReduceAction630(90),
-                       new ReduceAction631(90),
-                       new ReduceAction629(91),
-                       new ReduceAction633(91),
-                       new ReduceAction630(91),
-                       new ReduceAction631(91),
-                       new ReduceAction636(92),
-                       new ReduceAction637(93),
-                       new ReduceAction638(93),
-                       new ReduceAction639(94),
-                       new ReduceAction640(95),
-                       new ReduceAction641(95),
-                       new ReduceAction642(96),
-                       new ReduceAction643(96),
-                       new ReduceAction644(96),
-                       new ReduceAction645(96),
-                       new ReduceAction646(97),
-                       new ReduceAction647(97),
-                       new ReduceAction648(97),
-                       new ReduceAction649(98),
-                       new ReduceAction650(99),
-                       new ReduceAction651(100),
-                       new ReduceAction651(100),
-                       new ReduceAction653(101),
-                       new ReduceAction654(101),
-                       new ReduceAction70(101),
-                       new ReduceAction656(102),
-                       new ReduceAction657(102),
-                       new ReduceAction658(103),
-                       new ReduceAction659(103),
-                       new ReduceAction651(103),
-                       new ReduceAction152(104),
-                       new ReduceAction153(105),
-                       new ReduceAction154(105),
-                       new ReduceAction155(105),
-                       new ReduceAction156(105),
-                       new ReduceAction157(105),
-                       new ReduceAction158(105),
-                       new ReduceAction159(105),
-                       new ReduceAction160(105),
-                       new ReduceAction161(105),
-                       new ReduceAction162(105),
-                       new ReduceAction163(105),
-                       new ReduceAction164(105),
-                       new ReduceAction169(105),
-                       new ReduceAction170(105),
-                       new ReduceAction171(105),
-                       new ReduceAction172(105),
-                       new ReduceAction173(105),
-                       new ReduceAction174(105),
-                       new ReduceAction175(105),
-                       new ReduceAction176(105),
-                       new ReduceAction177(105),
-                       new ReduceAction178(105),
-                       new ReduceAction179(105),
-                       new ReduceAction180(105),
-                       new ReduceAction181(105),
-                       new ReduceAction182(105),
-                       new ReduceAction183(105),
-                       new ReduceAction184(105),
-                       new ReduceAction185(105),
-                       new ReduceAction186(105),
-                       new ReduceAction187(105),
-                       new ReduceAction188(105),
-                       new ReduceAction353(106),
-                       new ReduceAction354(106),
-                       new ReduceAction355(106),
-                       new ReduceAction356(106),
-                       new ReduceAction361(106),
-                       new ReduceAction362(106),
-                       new ReduceAction404(107),
-                       new ReduceAction405(107),
-                       new ReduceAction406(107),
-                       new ReduceAction407(107),
-                       new ReduceAction419(108),
-                       new ReduceAction448(108),
-                       new ReduceAction449(108),
-                       new ReduceAction419(109),
-                       new ReduceAction523(109),
-                       new ReduceAction419(110),
-                       new ReduceAction525(110),
-                       new ReduceAction526(110),
-                       new ReduceAction527(110),
-                       new ReduceAction419(111),
-                       new ReduceAction529(111),
-                       new ReduceAction419(112),
-                       new ReduceAction531(112),
-                       new ReduceAction532(112),
-                       new ReduceAction533(112),
-                       new ReduceAction534(112),
-                       new ReduceAction535(112),
-                       new ReduceAction536(112),
-                       new ReduceAction537(112),
-                       new ReduceAction538(112),
-                       new ReduceAction539(112),
-                       new ReduceAction540(112),
-                       new ReduceAction541(112),
-                       new ReduceAction419(113),
-                       new ReduceAction543(113),
-                       new ReduceAction544(113),
-                       new ReduceAction419(114),
-                       new ReduceAction546(114),
-                       new ReduceAction547(114),
-                       new ReduceAction548(114),
-                       new ReduceAction419(115),
-                       new ReduceAction550(115),
-                       new ReduceAction551(115),
-                       new ReduceAction419(116),
-                       new ReduceAction553(116),
-                       new ReduceAction554(116),
-                       new ReduceAction555(116),
-                       new ReduceAction556(117),
-                       new ReduceAction557(117),
-                       new ReduceAction446(117),
-                       new ReduceAction447(117),
-                       new ReduceAction450(117),
-                       new ReduceAction451(117),
-                       new ReduceAction452(117),
-                       new ReduceAction453(117),
-                       new ReduceAction565(117),
-                       new ReduceAction572(117),
-                       new ReduceAction573(117),
-                       new ReduceAction574(117),
-                       new ReduceAction575(117),
-                       new ReduceAction576(117),
-                       new ReduceAction577(117),
-                       new ReduceAction578(117),
-                       new ReduceAction579(117),
-                       new ReduceAction580(117),
-                       new ReduceAction581(117),
-                       new ReduceAction582(117),
-                       new ReduceAction583(117),
-                       new ReduceAction584(117),
-                       new ReduceAction585(117),
-                       new ReduceAction586(117),
-                       new ReduceAction587(117),
-                       new ReduceAction419(117),
-                       new ReduceAction589(117),
-                       new ReduceAction590(117),
-                       new ReduceAction591(117),
-                       new ReduceAction592(117),
-                       new ReduceAction404(118),
-                       new ReduceAction405(118),
-                       new ReduceAction406(118),
-                       new ReduceAction407(118),
-                       new ReduceAction408(118),
-                       new ReduceAction409(118),
-                       new ReduceAction410(118),
-                       new ReduceAction411(118),
-                       new ReduceAction419(119),
-                       new ReduceAction419(119),
-                       new ReduceAction429(119),
-                       new ReduceAction430(119),
-                       new ReduceAction431(119),
-                       new ReduceAction432(119),
-                       new ReduceAction433(119),
-                       new ReduceAction434(119),
-                       new ReduceAction435(119),
-                       new ReduceAction436(119),
-                       new ReduceAction437(119),
-                       new ReduceAction438(119),
-                       new ReduceAction439(119),
-                       new ReduceAction419(119),
-                       new ReduceAction419(119),
-                       new ReduceAction419(119),
-                       new ReduceAction419(119),
-                       new ReduceAction419(119),
-                       new ReduceAction419(119),
-                       new ReduceAction446(119),
-                       new ReduceAction447(119),
-                       new ReduceAction448(119),
-                       new ReduceAction449(119),
-                       new ReduceAction450(119),
-                       new ReduceAction451(119),
-                       new ReduceAction452(119),
-                       new ReduceAction453(119),
-                       new ReduceAction454(119),
-                       new ReduceAction484(120),
-                       new ReduceAction485(120),
-                       new ReduceAction486(120),
-                       new ReduceAction487(120),
-                       new ReduceAction488(120),
-                       new ReduceAction489(120),
-                       new ReduceAction490(120),
-                       new ReduceAction491(120),
-                       new ReduceAction492(120),
-                       new ReduceAction493(120),
-                       new ReduceAction419(121),
-                       new ReduceAction448(121),
-                       new ReduceAction449(121),
-                       new ReduceAction419(122),
-                       new ReduceAction523(122),
-                       new ReduceAction419(123),
-                       new ReduceAction525(123),
-                       new ReduceAction526(123),
-                       new ReduceAction527(123),
-                       new ReduceAction419(124),
-                       new ReduceAction529(124),
-                       new ReduceAction419(125),
-                       new ReduceAction531(125),
-                       new ReduceAction532(125),
-                       new ReduceAction533(125),
-                       new ReduceAction534(125),
-                       new ReduceAction535(125),
-                       new ReduceAction536(125),
-                       new ReduceAction537(125),
-                       new ReduceAction538(125),
-                       new ReduceAction539(125),
-                       new ReduceAction540(125),
-                       new ReduceAction541(125),
-                       new ReduceAction419(126),
-                       new ReduceAction543(126),
-                       new ReduceAction544(126),
-                       new ReduceAction419(127),
-                       new ReduceAction546(127),
-                       new ReduceAction547(127),
-                       new ReduceAction548(127),
-                       new ReduceAction419(128),
-                       new ReduceAction550(128),
-                       new ReduceAction551(128),
-                       new ReduceAction419(129),
-                       new ReduceAction553(129),
-                       new ReduceAction554(129),
-                       new ReduceAction555(129),
-                       new ReduceAction556(130),
-                       new ReduceAction557(130),
-                       new ReduceAction446(130),
-                       new ReduceAction447(130),
-                       new ReduceAction450(130),
-                       new ReduceAction451(130),
-                       new ReduceAction452(130),
-                       new ReduceAction453(130),
-                       new ReduceAction564(130),
-                       new ReduceAction565(130),
-                       new ReduceAction572(130),
-                       new ReduceAction573(130),
-                       new ReduceAction574(130),
-                       new ReduceAction575(130),
-                       new ReduceAction576(130),
-                       new ReduceAction577(130),
-                       new ReduceAction578(130),
-                       new ReduceAction579(130),
-                       new ReduceAction580(130),
-                       new ReduceAction581(130),
-                       new ReduceAction582(130),
-                       new ReduceAction583(130),
-                       new ReduceAction584(130),
-                       new ReduceAction585(130),
-                       new ReduceAction586(130),
-                       new ReduceAction587(130),
-                       new ReduceAction419(130),
-                       new ReduceAction591(130),
-                       new ReduceAction592(130),
-                       new ReduceAction602(131),
-                       new ReduceAction603(131),
-                       new ReduceAction604(132),
-                       new ReduceAction605(132),
-                       new ReduceAction618(133),
-                       new ReduceAction619(133),
-                       new ReduceAction621(134),
-                       new ReduceAction622(134),
-                       new ReduceAction622(134),
-                       new ReduceAction404(135),
-                       new ReduceAction405(135),
-                       new ReduceAction406(135),
-                       new ReduceAction407(135),
-                       new ReduceAction419(136),
-                       new ReduceAction448(136),
-                       new ReduceAction449(136),
-                       new ReduceAction419(137),
-                       new ReduceAction523(137),
-                       new ReduceAction419(138),
-                       new ReduceAction525(138),
-                       new ReduceAction526(138),
-                       new ReduceAction527(138),
-                       new ReduceAction419(139),
-                       new ReduceAction529(139),
-                       new ReduceAction419(140),
-                       new ReduceAction531(140),
-                       new ReduceAction532(140),
-                       new ReduceAction533(140),
-                       new ReduceAction534(140),
-                       new ReduceAction535(140),
-                       new ReduceAction536(140),
-                       new ReduceAction537(140),
-                       new ReduceAction538(140),
-                       new ReduceAction539(140),
-                       new ReduceAction540(140),
-                       new ReduceAction541(140),
-                       new ReduceAction419(141),
-                       new ReduceAction543(141),
-                       new ReduceAction544(141),
-                       new ReduceAction419(142),
-                       new ReduceAction546(142),
-                       new ReduceAction547(142),
-                       new ReduceAction548(142),
-                       new ReduceAction419(143),
-                       new ReduceAction550(143),
-                       new ReduceAction551(143),
-                       new ReduceAction419(144),
-                       new ReduceAction553(144),
-                       new ReduceAction931(144),
-                       new ReduceAction932(145),
-                       new ReduceAction933(145),
-                       new ReduceAction450(145),
-                       new ReduceAction451(145),
-                       new ReduceAction936(145),
-                       new ReduceAction565(145),
-                       new ReduceAction572(145),
-                       new ReduceAction573(145),
-                       new ReduceAction574(145),
-                       new ReduceAction575(145),
-                       new ReduceAction576(145),
-                       new ReduceAction577(145),
-                       new ReduceAction578(145),
-                       new ReduceAction579(145),
-                       new ReduceAction580(145),
-                       new ReduceAction581(145),
-                       new ReduceAction582(145),
-                       new ReduceAction583(145),
-                       new ReduceAction584(145),
-                       new ReduceAction585(145),
-                       new ReduceAction586(145),
-                       new ReduceAction587(145),
-                       new ReduceAction419(145),
-                       new ReduceAction591(145),
-                       new ReduceAction592(145),
-                       new ReduceAction957(146),
-                       new ReduceAction958(146),
-                       new ReduceAction416(147),
-                       new ReduceAction417(147),
-                       new ReduceAction418(147),
-                       new ReduceAction419(147),
-                       new ReduceAction419(148),
-                       new ReduceAction419(148),
-                       new ReduceAction429(148),
-                       new ReduceAction430(148),
-                       new ReduceAction431(148),
-                       new ReduceAction432(148),
-                       new ReduceAction433(148),
-                       new ReduceAction434(148),
-                       new ReduceAction435(148),
-                       new ReduceAction436(148),
-                       new ReduceAction437(148),
-                       new ReduceAction438(148),
-                       new ReduceAction439(148),
-                       new ReduceAction419(148),
-                       new ReduceAction419(148),
-                       new ReduceAction419(148),
-                       new ReduceAction419(148),
-                       new ReduceAction419(148),
-                       new ReduceAction419(148),
-                       new ReduceAction446(148),
-                       new ReduceAction447(148),
-                       new ReduceAction448(148),
-                       new ReduceAction449(148),
-                       new ReduceAction450(148),
-                       new ReduceAction451(148),
-                       new ReduceAction452(148),
-                       new ReduceAction453(148),
-                       new ReduceAction454(148),
-                       new ReduceAction456(149),
-                       new ReduceAction457(149),
-                       new ReduceAction458(150),
-                       new ReduceAction459(150),
-                       new ReduceAction460(150),
-                       new ReduceAction461(150),
-                       new ReduceAction462(150),
-                       new ReduceAction463(150),
-                       new ReduceAction464(150),
-                       new ReduceAction465(150),
-                       new ReduceAction466(150),
-                       new ReduceAction475(151),
-                       new ReduceAction476(152),
-                       new ReduceAction477(152),
-                       new ReduceAction478(152),
-                       new ReduceAction479(152),
-                       new ReduceAction480(152),
-                       new ReduceAction481(152),
-                       new ReduceAction482(152),
-                       new ReduceAction483(152),
-                       new ReduceAction484(153),
-                       new ReduceAction485(153),
-                       new ReduceAction486(153),
-                       new ReduceAction487(153),
-                       new ReduceAction488(153),
-                       new ReduceAction489(153),
-                       new ReduceAction490(153),
-                       new ReduceAction491(153),
-                       new ReduceAction492(153),
-                       new ReduceAction493(153),
-                       new ReduceAction496(154),
-                       new ReduceAction497(154),
-                       new ReduceAction498(155),
-                       new ReduceAction505(156),
-                       new ReduceAction506(156),
-                       new ReduceAction507(157),
-                       new ReduceAction508(157),
-                       new ReduceAction509(158),
-                       new ReduceAction510(158),
-                       new ReduceAction511(158),
-                       new ReduceAction512(158),
-                       new ReduceAction513(159),
-                       new ReduceAction514(159),
-                       new ReduceAction419(160),
-                       new ReduceAction448(160),
-                       new ReduceAction449(160),
-                       new ReduceAction521(160),
-                       new ReduceAction419(161),
-                       new ReduceAction448(161),
-                       new ReduceAction449(161),
-                       new ReduceAction419(162),
-                       new ReduceAction419(162),
-                       new ReduceAction429(162),
-                       new ReduceAction430(162),
-                       new ReduceAction431(162),
-                       new ReduceAction432(162),
-                       new ReduceAction433(162),
-                       new ReduceAction434(162),
-                       new ReduceAction435(162),
-                       new ReduceAction436(162),
-                       new ReduceAction437(162),
-                       new ReduceAction438(162),
-                       new ReduceAction439(162),
-                       new ReduceAction419(162),
-                       new ReduceAction419(162),
-                       new ReduceAction419(162),
-                       new ReduceAction419(162),
-                       new ReduceAction419(162),
-                       new ReduceAction419(162),
-                       new ReduceAction446(162),
-                       new ReduceAction447(162),
-                       new ReduceAction448(162),
-                       new ReduceAction449(162),
-                       new ReduceAction450(162),
-                       new ReduceAction451(162),
-                       new ReduceAction452(162),
-                       new ReduceAction453(162),
-                       new ReduceAction454(162),
-                       new ReduceAction484(163),
-                       new ReduceAction485(163),
-                       new ReduceAction486(163),
-                       new ReduceAction487(163),
-                       new ReduceAction488(163),
-                       new ReduceAction489(163),
-                       new ReduceAction490(163),
-                       new ReduceAction491(163),
-                       new ReduceAction492(163),
-                       new ReduceAction493(163),
-                       new ReduceAction419(164),
-                       new ReduceAction448(164),
-                       new ReduceAction449(164),
-                       new ReduceAction419(165),
-                       new ReduceAction448(165),
-                       new ReduceAction449(165),
-                       new ReduceAction416(166),
-                       new ReduceAction417(166),
-                       new ReduceAction418(166),
-                       new ReduceAction416(167),
-                       new ReduceAction417(167),
-                       new ReduceAction418(167),
-                       new ReduceAction419(168),
-                       new ReduceAction419(168),
-                       new ReduceAction429(168),
-                       new ReduceAction430(168),
-                       new ReduceAction431(168),
-                       new ReduceAction432(168),
-                       new ReduceAction433(168),
-                       new ReduceAction434(168),
-                       new ReduceAction435(168),
-                       new ReduceAction436(168),
-                       new ReduceAction437(168),
-                       new ReduceAction438(168),
-                       new ReduceAction439(168),
-                       new ReduceAction419(168),
-                       new ReduceAction419(168),
-                       new ReduceAction419(168),
-                       new ReduceAction419(168),
-                       new ReduceAction419(168),
-                       new ReduceAction454(168),
-                       new ReduceAction419(169),
-                       new ReduceAction419(169),
-                       new ReduceAction429(169),
-                       new ReduceAction430(169),
-                       new ReduceAction431(169),
-                       new ReduceAction432(169),
-                       new ReduceAction433(169),
-                       new ReduceAction434(169),
-                       new ReduceAction435(169),
-                       new ReduceAction436(169),
-                       new ReduceAction437(169),
-                       new ReduceAction438(169),
-                       new ReduceAction439(169),
-                       new ReduceAction419(169),
-                       new ReduceAction419(169),
-                       new ReduceAction419(169),
-                       new ReduceAction419(169),
-                       new ReduceAction419(169),
-                       new ReduceAction454(169),
-                       new ReduceAction419(170),
-                       new ReduceAction419(170),
-                       new ReduceAction429(170),
-                       new ReduceAction430(170),
-                       new ReduceAction431(170),
-                       new ReduceAction432(170),
-                       new ReduceAction433(170),
-                       new ReduceAction434(170),
-                       new ReduceAction435(170),
-                       new ReduceAction436(170),
-                       new ReduceAction437(170),
-                       new ReduceAction438(170),
-                       new ReduceAction439(170),
-                       new ReduceAction419(170),
-                       new ReduceAction419(170),
-                       new ReduceAction419(170),
-                       new ReduceAction419(170),
-                       new ReduceAction419(170),
-                       new ReduceAction454(170),
-                       new ReduceAction419(171),
-                       new ReduceAction419(171),
-                       new ReduceAction429(171),
-                       new ReduceAction430(171),
-                       new ReduceAction431(171),
-                       new ReduceAction432(171),
-                       new ReduceAction433(171),
-                       new ReduceAction434(171),
-                       new ReduceAction435(171),
-                       new ReduceAction436(171),
-                       new ReduceAction437(171),
-                       new ReduceAction438(171),
-                       new ReduceAction439(171),
-                       new ReduceAction419(171),
-                       new ReduceAction419(171),
-                       new ReduceAction419(171),
-                       new ReduceAction419(171),
-                       new ReduceAction419(171),
-                       new ReduceAction454(171),
-                       new ReduceAction419(172),
-                       new ReduceAction523(172),
-                       new ReduceAction419(173),
-                       new ReduceAction525(173),
-                       new ReduceAction526(173),
-                       new ReduceAction527(173),
-                       new ReduceAction419(174),
-                       new ReduceAction529(174),
-                       new ReduceAction419(175),
-                       new ReduceAction531(175),
-                       new ReduceAction533(175),
-                       new ReduceAction534(175),
-                       new ReduceAction535(175),
-                       new ReduceAction536(175),
-                       new ReduceAction537(175),
-                       new ReduceAction538(175),
-                       new ReduceAction539(175),
-                       new ReduceAction540(175),
-                       new ReduceAction541(175),
-                       new ReduceAction419(176),
-                       new ReduceAction523(176),
-                       new ReduceAction419(177),
-                       new ReduceAction525(177),
-                       new ReduceAction526(177),
-                       new ReduceAction527(177),
-                       new ReduceAction419(178),
-                       new ReduceAction529(178),
-                       new ReduceAction419(179),
-                       new ReduceAction531(179),
-                       new ReduceAction533(179),
-                       new ReduceAction534(179),
-                       new ReduceAction535(179),
-                       new ReduceAction536(179),
-                       new ReduceAction537(179),
-                       new ReduceAction538(179),
-                       new ReduceAction539(179),
-                       new ReduceAction540(179),
-                       new ReduceAction541(179),
-                       new ReduceAction419(180),
-                       new ReduceAction523(180),
-                       new ReduceAction419(181),
-                       new ReduceAction525(181),
-                       new ReduceAction526(181),
-                       new ReduceAction527(181),
-                       new ReduceAction419(182),
-                       new ReduceAction529(182),
-                       new ReduceAction419(183),
-                       new ReduceAction531(183),
-                       new ReduceAction533(183),
-                       new ReduceAction534(183),
-                       new ReduceAction535(183),
-                       new ReduceAction536(183),
-                       new ReduceAction537(183),
-                       new ReduceAction538(183),
-                       new ReduceAction539(183),
-                       new ReduceAction540(183),
-                       new ReduceAction541(183),
-                       new ReduceAction419(184),
-                       new ReduceAction523(184),
-                       new ReduceAction419(185),
-                       new ReduceAction525(185),
-                       new ReduceAction526(185),
-                       new ReduceAction527(185),
-                       new ReduceAction419(186),
-                       new ReduceAction529(186),
-                       new ReduceAction419(187),
-                       new ReduceAction531(187),
-                       new ReduceAction533(187),
-                       new ReduceAction534(187),
-                       new ReduceAction535(187),
-                       new ReduceAction536(187),
-                       new ReduceAction537(187),
-                       new ReduceAction538(187),
-                       new ReduceAction539(187),
-                       new ReduceAction540(187),
-                       new ReduceAction541(187),
-                       new ReduceAction612(188),
-                       new ReduceAction613(188),
-                       new ReduceAction614(188),
-                       new ReduceAction615(188),
-                       new ReduceAction616(188),
-                       new ReduceAction625(189),
-                       new ReduceAction628(189),
-                       new ReduceAction1250(190),
-                       new ReduceAction1251(190),
-                       new ReduceAction1252(191),
-                       new ReduceAction1253(191),
-                       new ReduceAction1254(192),
-                       new ReduceAction1255(192),
-                       new ReduceAction1256(193),
-                       new ReduceAction1257(193),
-                       new ReduceAction1258(194),
-                       new ReduceAction1259(194),
-                       new ReduceAction1256(195),
-                       new ReduceAction1257(195),
-                       new ReduceAction1262(196),
-                       new ReduceAction1263(196),
-                       new ReduceAction1264(197),
-                       new ReduceAction1265(197),
-                       new ReduceAction1266(198),
-                       new ReduceAction1267(198),
-                       new ReduceAction1268(199),
-                       new ReduceAction1269(199),
-                       new ReduceAction412(200),
-                       new ReduceAction1271(200),
-                       new ReduceAction1272(201),
-                       new ReduceAction1273(201),
-                       new ReduceAction380(202),
-                       new ReduceAction1275(202),
-                       new ReduceAction609(203),
-                       new ReduceAction1277(203),
-                       new ReduceAction609(204),
-                       new ReduceAction1277(204),
-                       new ReduceAction618(205),
-                       new ReduceAction1281(205),
-                       new ReduceAction1272(206),
-                       new ReduceAction1273(206),
-                       new ReduceAction640(207),
-                       new ReduceAction1285(207),
-                       new ReduceAction1286(208),
-                       new ReduceAction1287(208),
-                       new ReduceAction1288(209),
-                       new ReduceAction1289(209),
-                       new ReduceAction609(210),
-                       new ReduceAction1277(210)
+                       new ReduceAction134(5),
+                       new ReduceAction137(5),
+                       new ReduceAction138(5),
+                       new ReduceAction139(5),
+                       new ReduceAction140(5),
+                       new ReduceAction139(5),
+                       new ReduceAction142(5),
+                       new ReduceAction143(5),
+                       new ReduceAction142(5),
+                       new ReduceAction145(5),
+                       new ReduceAction146(5),
+                       new ReduceAction147(5),
+                       new ReduceAction148(5),
+                       new ReduceAction147(5),
+                       new ReduceAction150(5),
+                       new ReduceAction151(5),
+                       new ReduceAction150(5),
+                       new ReduceAction153(5),
+                       new ReduceAction154(5),
+                       new ReduceAction155(5),
+                       new ReduceAction156(5),
+                       new ReduceAction155(5),
+                       new ReduceAction158(5),
+                       new ReduceAction159(5),
+                       new ReduceAction158(5),
+                       new ReduceAction161(5),
+                       new ReduceAction162(5),
+                       new ReduceAction163(5),
+                       new ReduceAction164(5),
+                       new ReduceAction163(5),
+                       new ReduceAction166(5),
+                       new ReduceAction167(5),
+                       new ReduceAction166(5),
+                       new ReduceAction169(5),
+                       new ReduceAction170(5),
+                       new ReduceAction171(5),
+                       new ReduceAction172(5),
+                       new ReduceAction171(5),
+                       new ReduceAction174(5),
+                       new ReduceAction175(5),
+                       new ReduceAction174(5),
+                       new ReduceAction177(5),
+                       new ReduceAction178(5),
+                       new ReduceAction179(5),
+                       new ReduceAction180(5),
+                       new ReduceAction179(5),
+                       new ReduceAction182(5),
+                       new ReduceAction183(5),
+                       new ReduceAction182(5),
+                       new ReduceAction185(5),
+                       new ReduceAction186(5),
+                       new ReduceAction187(5),
+                       new ReduceAction188(5),
+                       new ReduceAction187(5),
+                       new ReduceAction190(5),
+                       new ReduceAction191(5),
+                       new ReduceAction190(5),
+                       new ReduceAction193(5),
+                       new ReduceAction194(5),
+                       new ReduceAction195(5),
+                       new ReduceAction196(5),
+                       new ReduceAction195(5),
+                       new ReduceAction198(5),
+                       new ReduceAction199(5),
+                       new ReduceAction198(5),
+                       new ReduceAction201(5),
+                       new ReduceAction202(5),
+                       new ReduceAction203(5),
+                       new ReduceAction204(5),
+                       new ReduceAction203(5),
+                       new ReduceAction206(5),
+                       new ReduceAction207(5),
+                       new ReduceAction206(5),
+                       new ReduceAction209(5),
+                       new ReduceAction210(5),
+                       new ReduceAction211(5),
+                       new ReduceAction212(5),
+                       new ReduceAction211(5),
+                       new ReduceAction214(5),
+                       new ReduceAction215(5),
+                       new ReduceAction214(5),
+                       new ReduceAction217(5),
+                       new ReduceAction218(5),
+                       new ReduceAction219(5),
+                       new ReduceAction220(5),
+                       new ReduceAction219(5),
+                       new ReduceAction222(5),
+                       new ReduceAction223(5),
+                       new ReduceAction222(5),
+                       new ReduceAction225(5),
+                       new ReduceAction226(5),
+                       new ReduceAction227(5),
+                       new ReduceAction228(5),
+                       new ReduceAction227(5),
+                       new ReduceAction230(5),
+                       new ReduceAction231(5),
+                       new ReduceAction230(5),
+                       new ReduceAction233(5),
+                       new ReduceAction234(5),
+                       new ReduceAction235(5),
+                       new ReduceAction236(5),
+                       new ReduceAction235(5),
+                       new ReduceAction238(5),
+                       new ReduceAction239(5),
+                       new ReduceAction238(5),
+                       new ReduceAction241(5),
+                       new ReduceAction242(5),
+                       new ReduceAction243(5),
+                       new ReduceAction244(5),
+                       new ReduceAction243(5),
+                       new ReduceAction246(5),
+                       new ReduceAction247(5),
+                       new ReduceAction246(5),
+                       new ReduceAction249(5),
+                       new ReduceAction250(5),
+                       new ReduceAction251(5),
+                       new ReduceAction252(5),
+                       new ReduceAction251(5),
+                       new ReduceAction254(5),
+                       new ReduceAction255(5),
+                       new ReduceAction254(5),
+                       new ReduceAction257(5),
+                       new ReduceAction258(5),
+                       new ReduceAction259(5),
+                       new ReduceAction260(5),
+                       new ReduceAction259(5),
+                       new ReduceAction262(5),
+                       new ReduceAction263(5),
+                       new ReduceAction262(5),
+                       new ReduceAction265(5),
+                       new ReduceAction266(5),
+                       new ReduceAction267(5),
+                       new ReduceAction268(5),
+                       new ReduceAction267(5),
+                       new ReduceAction270(5),
+                       new ReduceAction271(5),
+                       new ReduceAction270(5),
+                       new ReduceAction273(5),
+                       new ReduceAction274(5),
+                       new ReduceAction275(5),
+                       new ReduceAction276(5),
+                       new ReduceAction275(5),
+                       new ReduceAction278(5),
+                       new ReduceAction279(5),
+                       new ReduceAction278(5),
+                       new ReduceAction281(5),
+                       new ReduceAction282(5),
+                       new ReduceAction283(5),
+                       new ReduceAction284(5),
+                       new ReduceAction283(5),
+                       new ReduceAction286(5),
+                       new ReduceAction287(5),
+                       new ReduceAction286(5),
+                       new ReduceAction289(5),
+                       new ReduceAction290(5),
+                       new ReduceAction291(5),
+                       new ReduceAction292(5),
+                       new ReduceAction291(5),
+                       new ReduceAction294(5),
+                       new ReduceAction295(5),
+                       new ReduceAction294(5),
+                       new ReduceAction297(5),
+                       new ReduceAction298(5),
+                       new ReduceAction299(5),
+                       new ReduceAction300(5),
+                       new ReduceAction299(5),
+                       new ReduceAction302(5),
+                       new ReduceAction303(5),
+                       new ReduceAction302(5),
+                       new ReduceAction305(5),
+                       new ReduceAction306(5),
+                       new ReduceAction307(5),
+                       new ReduceAction308(5),
+                       new ReduceAction307(5),
+                       new ReduceAction310(5),
+                       new ReduceAction311(5),
+                       new ReduceAction310(5),
+                       new ReduceAction313(5),
+                       new ReduceAction314(5),
+                       new ReduceAction315(5),
+                       new ReduceAction316(5),
+                       new ReduceAction315(5),
+                       new ReduceAction318(5),
+                       new ReduceAction319(5),
+                       new ReduceAction318(5),
+                       new ReduceAction321(5),
+                       new ReduceAction322(5),
+                       new ReduceAction323(5),
+                       new ReduceAction324(5),
+                       new ReduceAction323(5),
+                       new ReduceAction326(5),
+                       new ReduceAction327(5),
+                       new ReduceAction326(5),
+                       new ReduceAction329(6),
+                       new ReduceAction330(6),
+                       new ReduceAction331(6),
+                       new ReduceAction332(6),
+                       new ReduceAction333(6),
+                       new ReduceAction334(6),
+                       new ReduceAction335(7),
+                       new ReduceAction336(7),
+                       new ReduceAction337(8),
+                       new ReduceAction338(9),
+                       new ReduceAction339(9),
+                       new ReduceAction340(9),
+                       new ReduceAction341(9),
+                       new ReduceAction342(10),
+                       new ReduceAction343(10),
+                       new ReduceAction344(11),
+                       new ReduceAction345(12),
+                       new ReduceAction346(12),
+                       new ReduceAction347(12),
+                       new ReduceAction348(12),
+                       new ReduceAction349(12),
+                       new ReduceAction350(12),
+                       new ReduceAction351(12),
+                       new ReduceAction352(12),
+                       new ReduceAction353(12),
+                       new ReduceAction354(12),
+                       new ReduceAction355(12),
+                       new ReduceAction356(12),
+                       new ReduceAction357(12),
+                       new ReduceAction358(12),
+                       new ReduceAction359(12),
+                       new ReduceAction360(12),
+                       new ReduceAction361(12),
+                       new ReduceAction362(12),
+                       new ReduceAction363(12),
+                       new ReduceAction364(12),
+                       new ReduceAction365(12),
+                       new ReduceAction366(12),
+                       new ReduceAction367(12),
+                       new ReduceAction368(12),
+                       new ReduceAction369(12),
+                       new ReduceAction370(12),
+                       new ReduceAction371(12),
+                       new ReduceAction372(12),
+                       new ReduceAction373(12),
+                       new ReduceAction374(12),
+                       new ReduceAction375(12),
+                       new ReduceAction376(12),
+                       new ReduceAction377(12),
+                       new ReduceAction378(12),
+                       new ReduceAction379(12),
+                       new ReduceAction380(12),
+                       new ReduceAction381(12),
+                       new ReduceAction382(12),
+                       new ReduceAction383(12),
+                       new ReduceAction384(12),
+                       new ReduceAction385(12),
+                       new ReduceAction386(12),
+                       new ReduceAction387(12),
+                       new ReduceAction388(12),
+                       new ReduceAction389(12),
+                       new ReduceAction390(12),
+                       new ReduceAction391(12),
+                       new ReduceAction392(12),
+                       new ReduceAction393(12),
+                       new ReduceAction394(12),
+                       new ReduceAction395(12),
+                       new ReduceAction396(12),
+                       new ReduceAction397(12),
+                       new ReduceAction398(12),
+                       new ReduceAction399(12),
+                       new ReduceAction400(12),
+                       new ReduceAction401(12),
+                       new ReduceAction402(12),
+                       new ReduceAction403(12),
+                       new ReduceAction404(12),
+                       new ReduceAction405(12),
+                       new ReduceAction406(12),
+                       new ReduceAction407(12),
+                       new ReduceAction408(12),
+                       new ReduceAction409(12),
+                       new ReduceAction410(12),
+                       new ReduceAction411(12),
+                       new ReduceAction412(12),
+                       new ReduceAction413(12),
+                       new ReduceAction414(12),
+                       new ReduceAction415(12),
+                       new ReduceAction416(12),
+                       new ReduceAction417(12),
+                       new ReduceAction418(12),
+                       new ReduceAction419(12),
+                       new ReduceAction420(12),
+                       new ReduceAction421(12),
+                       new ReduceAction422(12),
+                       new ReduceAction423(12),
+                       new ReduceAction424(12),
+                       new ReduceAction425(12),
+                       new ReduceAction426(12),
+                       new ReduceAction427(12),
+                       new ReduceAction428(12),
+                       new ReduceAction429(12),
+                       new ReduceAction430(12),
+                       new ReduceAction431(12),
+                       new ReduceAction432(12),
+                       new ReduceAction433(12),
+                       new ReduceAction434(12),
+                       new ReduceAction435(12),
+                       new ReduceAction436(12),
+                       new ReduceAction437(12),
+                       new ReduceAction438(12),
+                       new ReduceAction439(12),
+                       new ReduceAction440(12),
+                       new ReduceAction441(12),
+                       new ReduceAction442(12),
+                       new ReduceAction443(12),
+                       new ReduceAction444(12),
+                       new ReduceAction445(12),
+                       new ReduceAction446(12),
+                       new ReduceAction447(12),
+                       new ReduceAction448(12),
+                       new ReduceAction449(12),
+                       new ReduceAction450(12),
+                       new ReduceAction451(12),
+                       new ReduceAction452(12),
+                       new ReduceAction453(12),
+                       new ReduceAction454(12),
+                       new ReduceAction455(12),
+                       new ReduceAction456(12),
+                       new ReduceAction457(12),
+                       new ReduceAction458(12),
+                       new ReduceAction459(12),
+                       new ReduceAction460(12),
+                       new ReduceAction461(12),
+                       new ReduceAction462(12),
+                       new ReduceAction463(12),
+                       new ReduceAction464(12),
+                       new ReduceAction465(12),
+                       new ReduceAction466(12),
+                       new ReduceAction467(12),
+                       new ReduceAction468(12),
+                       new ReduceAction469(12),
+                       new ReduceAction470(12),
+                       new ReduceAction471(12),
+                       new ReduceAction472(12),
+                       new ReduceAction473(12),
+                       new ReduceAction474(12),
+                       new ReduceAction475(12),
+                       new ReduceAction476(12),
+                       new ReduceAction477(12),
+                       new ReduceAction478(12),
+                       new ReduceAction479(12),
+                       new ReduceAction480(12),
+                       new ReduceAction481(12),
+                       new ReduceAction482(12),
+                       new ReduceAction483(12),
+                       new ReduceAction484(12),
+                       new ReduceAction485(12),
+                       new ReduceAction486(12),
+                       new ReduceAction487(12),
+                       new ReduceAction488(12),
+                       new ReduceAction489(12),
+                       new ReduceAction490(12),
+                       new ReduceAction491(12),
+                       new ReduceAction492(12),
+                       new ReduceAction493(12),
+                       new ReduceAction494(12),
+                       new ReduceAction495(12),
+                       new ReduceAction496(12),
+                       new ReduceAction497(12),
+                       new ReduceAction498(12),
+                       new ReduceAction499(12),
+                       new ReduceAction500(12),
+                       new ReduceAction501(12),
+                       new ReduceAction502(12),
+                       new ReduceAction503(12),
+                       new ReduceAction504(12),
+                       new ReduceAction505(12),
+                       new ReduceAction506(12),
+                       new ReduceAction507(12),
+                       new ReduceAction508(12),
+                       new ReduceAction509(12),
+                       new ReduceAction510(12),
+                       new ReduceAction511(12),
+                       new ReduceAction512(12),
+                       new ReduceAction513(13),
+                       new ReduceAction514(13),
+                       new ReduceAction513(14),
+                       new ReduceAction516(14),
+                       new ReduceAction517(15),
+                       new ReduceAction518(15),
+                       new ReduceAction519(16),
+                       new ReduceAction520(16),
+                       new ReduceAction521(17),
+                       new ReduceAction522(17),
+                       new ReduceAction523(18),
+                       new ReduceAction524(18),
+                       new ReduceAction525(18),
+                       new ReduceAction526(18),
+                       new ReduceAction527(19),
+                       new ReduceAction528(19),
+                       new ReduceAction529(19),
+                       new ReduceAction530(19),
+                       new ReduceAction531(19),
+                       new ReduceAction532(19),
+                       new ReduceAction533(19),
+                       new ReduceAction534(19),
+                       new ReduceAction535(19),
+                       new ReduceAction536(19),
+                       new ReduceAction537(19),
+                       new ReduceAction538(19),
+                       new ReduceAction539(19),
+                       new ReduceAction540(19),
+                       new ReduceAction541(19),
+                       new ReduceAction542(19),
+                       new ReduceAction543(19),
+                       new ReduceAction544(19),
+                       new ReduceAction545(20),
+                       new ReduceAction546(20),
+                       new ReduceAction547(20),
+                       new ReduceAction548(20),
+                       new ReduceAction549(20),
+                       new ReduceAction550(20),
+                       new ReduceAction551(20),
+                       new ReduceAction552(20),
+                       new ReduceAction553(20),
+                       new ReduceAction554(20),
+                       new ReduceAction555(20),
+                       new ReduceAction556(20),
+                       new ReduceAction557(21),
+                       new ReduceAction558(21),
+                       new ReduceAction559(21),
+                       new ReduceAction560(21),
+                       new ReduceAction561(21),
+                       new ReduceAction562(21),
+                       new ReduceAction563(22),
+                       new ReduceAction564(22),
+                       new ReduceAction565(23),
+                       new ReduceAction566(24),
+                       new ReduceAction567(24),
+                       new ReduceAction568(24),
+                       new ReduceAction569(24),
+                       new ReduceAction570(24),
+                       new ReduceAction571(24),
+                       new ReduceAction572(25),
+                       new ReduceAction573(26),
+                       new ReduceAction574(26),
+                       new ReduceAction575(26),
+                       new ReduceAction576(26),
+                       new ReduceAction577(26),
+                       new ReduceAction578(26),
+                       new ReduceAction579(27),
+                       new ReduceAction580(28),
+                       new ReduceAction581(28),
+                       new ReduceAction582(29),
+                       new ReduceAction583(30),
+                       new ReduceAction583(30),
+                       new ReduceAction585(30),
+                       new ReduceAction586(31),
+                       new ReduceAction587(31),
+                       new ReduceAction588(31),
+                       new ReduceAction589(32),
+                       new ReduceAction590(32),
+                       new ReduceAction591(32),
+                       new ReduceAction592(33),
+                       new ReduceAction593(34),
+                       new ReduceAction594(34),
+                       new ReduceAction595(35),
+                       new ReduceAction596(36),
+                       new ReduceAction597(36),
+                       new ReduceAction598(36),
+                       new ReduceAction599(36),
+                       new ReduceAction600(36),
+                       new ReduceAction601(36),
+                       new ReduceAction602(36),
+                       new ReduceAction603(36),
+                       new ReduceAction604(37),
+                       new ReduceAction605(37),
+                       new ReduceAction606(38),
+                       new ReduceAction606(39),
+                       new ReduceAction608(40),
+                       new ReduceAction609(40),
+                       new ReduceAction610(40),
+                       new ReduceAction611(40),
+                       new ReduceAction612(41),
+                       new ReduceAction613(41),
+                       new ReduceAction614(42),
+                       new ReduceAction615(42),
+                       new ReduceAction616(43),
+                       new ReduceAction617(43),
+                       new ReduceAction608(44),
+                       new ReduceAction611(45),
+                       new ReduceAction611(45),
+                       new ReduceAction621(45),
+                       new ReduceAction622(45),
+                       new ReduceAction623(45),
+                       new ReduceAction624(45),
+                       new ReduceAction625(45),
+                       new ReduceAction626(45),
+                       new ReduceAction627(45),
+                       new ReduceAction628(45),
+                       new ReduceAction629(45),
+                       new ReduceAction630(45),
+                       new ReduceAction631(45),
+                       new ReduceAction611(45),
+                       new ReduceAction611(45),
+                       new ReduceAction611(45),
+                       new ReduceAction611(45),
+                       new ReduceAction611(45),
+                       new ReduceAction611(45),
+                       new ReduceAction638(45),
+                       new ReduceAction639(45),
+                       new ReduceAction640(45),
+                       new ReduceAction641(45),
+                       new ReduceAction640(45),
+                       new ReduceAction643(45),
+                       new ReduceAction644(45),
+                       new ReduceAction643(45),
+                       new ReduceAction646(45),
+                       new ReduceAction647(45),
+                       new ReduceAction648(45),
+                       new ReduceAction649(45),
+                       new ReduceAction648(45),
+                       new ReduceAction651(45),
+                       new ReduceAction652(45),
+                       new ReduceAction651(45),
+                       new ReduceAction654(45),
+                       new ReduceAction655(45),
+                       new ReduceAction656(45),
+                       new ReduceAction657(45),
+                       new ReduceAction658(45),
+                       new ReduceAction659(45),
+                       new ReduceAction660(45),
+                       new ReduceAction661(45),
+                       new ReduceAction660(45),
+                       new ReduceAction663(45),
+                       new ReduceAction664(45),
+                       new ReduceAction663(45),
+                       new ReduceAction666(45),
+                       new ReduceAction667(46),
+                       new ReduceAction668(47),
+                       new ReduceAction669(47),
+                       new ReduceAction670(48),
+                       new ReduceAction671(48),
+                       new ReduceAction672(48),
+                       new ReduceAction673(48),
+                       new ReduceAction674(48),
+                       new ReduceAction675(48),
+                       new ReduceAction676(48),
+                       new ReduceAction677(48),
+                       new ReduceAction678(48),
+                       new ReduceAction679(49),
+                       new ReduceAction680(49),
+                       new ReduceAction681(49),
+                       new ReduceAction682(49),
+                       new ReduceAction683(49),
+                       new ReduceAction684(49),
+                       new ReduceAction685(50),
+                       new ReduceAction686(50),
+                       new ReduceAction687(51),
+                       new ReduceAction688(52),
+                       new ReduceAction689(52),
+                       new ReduceAction690(52),
+                       new ReduceAction691(52),
+                       new ReduceAction692(52),
+                       new ReduceAction693(52),
+                       new ReduceAction694(52),
+                       new ReduceAction695(52),
+                       new ReduceAction696(53),
+                       new ReduceAction697(53),
+                       new ReduceAction698(53),
+                       new ReduceAction699(53),
+                       new ReduceAction698(53),
+                       new ReduceAction701(53),
+                       new ReduceAction702(53),
+                       new ReduceAction701(53),
+                       new ReduceAction704(53),
+                       new ReduceAction705(53),
+                       new ReduceAction706(53),
+                       new ReduceAction707(53),
+                       new ReduceAction706(53),
+                       new ReduceAction709(53),
+                       new ReduceAction710(53),
+                       new ReduceAction709(53),
+                       new ReduceAction712(53),
+                       new ReduceAction713(53),
+                       new ReduceAction714(53),
+                       new ReduceAction715(53),
+                       new ReduceAction716(53),
+                       new ReduceAction715(53),
+                       new ReduceAction718(53),
+                       new ReduceAction719(53),
+                       new ReduceAction718(53),
+                       new ReduceAction721(53),
+                       new ReduceAction722(53),
+                       new ReduceAction723(53),
+                       new ReduceAction724(53),
+                       new ReduceAction723(53),
+                       new ReduceAction726(53),
+                       new ReduceAction727(53),
+                       new ReduceAction726(53),
+                       new ReduceAction729(53),
+                       new ReduceAction730(54),
+                       new ReduceAction731(54),
+                       new ReduceAction732(55),
+                       new ReduceAction733(55),
+                       new ReduceAction734(56),
+                       new ReduceAction735(56),
+                       new ReduceAction736(56),
+                       new ReduceAction737(56),
+                       new ReduceAction738(56),
+                       new ReduceAction608(57),
+                       new ReduceAction610(57),
+                       new ReduceAction741(58),
+                       new ReduceAction742(58),
+                       new ReduceAction743(59),
+                       new ReduceAction744(59),
+                       new ReduceAction745(60),
+                       new ReduceAction746(60),
+                       new ReduceAction747(60),
+                       new ReduceAction748(60),
+                       new ReduceAction749(61),
+                       new ReduceAction750(61),
+                       new ReduceAction751(61),
+                       new ReduceAction752(61),
+                       new ReduceAction753(62),
+                       new ReduceAction611(63),
+                       new ReduceAction646(63),
+                       new ReduceAction647(63),
+                       new ReduceAction648(63),
+                       new ReduceAction649(63),
+                       new ReduceAction648(63),
+                       new ReduceAction651(63),
+                       new ReduceAction652(63),
+                       new ReduceAction651(63),
+                       new ReduceAction763(63),
+                       new ReduceAction611(64),
+                       new ReduceAction765(64),
+                       new ReduceAction611(65),
+                       new ReduceAction767(65),
+                       new ReduceAction768(65),
+                       new ReduceAction769(65),
+                       new ReduceAction611(66),
+                       new ReduceAction771(66),
+                       new ReduceAction611(67),
+                       new ReduceAction773(67),
+                       new ReduceAction774(67),
+                       new ReduceAction775(67),
+                       new ReduceAction776(67),
+                       new ReduceAction777(67),
+                       new ReduceAction778(67),
+                       new ReduceAction779(67),
+                       new ReduceAction780(67),
+                       new ReduceAction781(67),
+                       new ReduceAction782(67),
+                       new ReduceAction783(67),
+                       new ReduceAction611(68),
+                       new ReduceAction785(68),
+                       new ReduceAction786(68),
+                       new ReduceAction611(69),
+                       new ReduceAction788(69),
+                       new ReduceAction789(69),
+                       new ReduceAction790(69),
+                       new ReduceAction611(70),
+                       new ReduceAction792(70),
+                       new ReduceAction793(70),
+                       new ReduceAction611(71),
+                       new ReduceAction795(71),
+                       new ReduceAction796(71),
+                       new ReduceAction797(71),
+                       new ReduceAction798(71),
+                       new ReduceAction799(71),
+                       new ReduceAction798(71),
+                       new ReduceAction801(71),
+                       new ReduceAction802(71),
+                       new ReduceAction801(71),
+                       new ReduceAction804(72),
+                       new ReduceAction805(72),
+                       new ReduceAction806(72),
+                       new ReduceAction807(72),
+                       new ReduceAction806(72),
+                       new ReduceAction809(72),
+                       new ReduceAction810(72),
+                       new ReduceAction809(72),
+                       new ReduceAction638(72),
+                       new ReduceAction639(72),
+                       new ReduceAction640(72),
+                       new ReduceAction641(72),
+                       new ReduceAction640(72),
+                       new ReduceAction643(72),
+                       new ReduceAction644(72),
+                       new ReduceAction643(72),
+                       new ReduceAction654(72),
+                       new ReduceAction655(72),
+                       new ReduceAction656(72),
+                       new ReduceAction657(72),
+                       new ReduceAction658(72),
+                       new ReduceAction659(72),
+                       new ReduceAction826(72),
+                       new ReduceAction827(72),
+                       new ReduceAction828(72),
+                       new ReduceAction829(72),
+                       new ReduceAction828(72),
+                       new ReduceAction831(72),
+                       new ReduceAction832(72),
+                       new ReduceAction833(72),
+                       new ReduceAction834(72),
+                       new ReduceAction835(72),
+                       new ReduceAction836(72),
+                       new ReduceAction837(72),
+                       new ReduceAction838(72),
+                       new ReduceAction839(72),
+                       new ReduceAction840(72),
+                       new ReduceAction841(72),
+                       new ReduceAction842(72),
+                       new ReduceAction843(72),
+                       new ReduceAction844(72),
+                       new ReduceAction845(72),
+                       new ReduceAction846(72),
+                       new ReduceAction847(72),
+                       new ReduceAction848(72),
+                       new ReduceAction849(72),
+                       new ReduceAction850(72),
+                       new ReduceAction851(72),
+                       new ReduceAction852(72),
+                       new ReduceAction611(72),
+                       new ReduceAction854(72),
+                       new ReduceAction855(72),
+                       new ReduceAction856(72),
+                       new ReduceAction857(72),
+                       new ReduceAction858(73),
+                       new ReduceAction859(73),
+                       new ReduceAction860(73),
+                       new ReduceAction861(73),
+                       new ReduceAction862(74),
+                       new ReduceAction863(75),
+                       new ReduceAction862(76),
+                       new ReduceAction865(77),
+                       new ReduceAction866(78),
+                       new ReduceAction867(79),
+                       new ReduceAction868(79),
+                       new ReduceAction869(80),
+                       new ReduceAction870(80),
+                       new ReduceAction871(80),
+                       new ReduceAction872(80),
+                       new ReduceAction873(81),
+                       new ReduceAction874(82),
+                       new ReduceAction875(82),
+                       new ReduceAction873(83),
+                       new ReduceAction877(84),
+                       new ReduceAction878(84),
+                       new ReduceAction879(84),
+                       new ReduceAction880(84),
+                       new ReduceAction881(84),
+                       new ReduceAction882(85),
+                       new ReduceAction883(86),
+                       new ReduceAction884(86),
+                       new ReduceAction885(87),
+                       new ReduceAction886(88),
+                       new ReduceAction887(88),
+                       new ReduceAction887(88),
+                       new ReduceAction889(88),
+                       new ReduceAction890(89),
+                       new ReduceAction891(89),
+                       new ReduceAction892(89),
+                       new ReduceAction891(89),
+                       new ReduceAction894(89),
+                       new ReduceAction895(89),
+                       new ReduceAction896(89),
+                       new ReduceAction895(89),
+                       new ReduceAction898(89),
+                       new ReduceAction899(89),
+                       new ReduceAction900(89),
+                       new ReduceAction899(89),
+                       new ReduceAction902(89),
+                       new ReduceAction903(89),
+                       new ReduceAction904(89),
+                       new ReduceAction903(89),
+                       new ReduceAction906(90),
+                       new ReduceAction907(90),
+                       new ReduceAction908(90),
+                       new ReduceAction906(91),
+                       new ReduceAction910(91),
+                       new ReduceAction907(91),
+                       new ReduceAction908(91),
+                       new ReduceAction913(92),
+                       new ReduceAction914(93),
+                       new ReduceAction915(93),
+                       new ReduceAction916(94),
+                       new ReduceAction917(95),
+                       new ReduceAction918(95),
+                       new ReduceAction919(96),
+                       new ReduceAction920(96),
+                       new ReduceAction921(96),
+                       new ReduceAction922(96),
+                       new ReduceAction923(97),
+                       new ReduceAction924(98),
+                       new ReduceAction925(99),
+                       new ReduceAction925(99),
+                       new ReduceAction927(100),
+                       new ReduceAction928(100),
+                       new ReduceAction70(100),
+                       new ReduceAction930(101),
+                       new ReduceAction931(101),
+                       new ReduceAction932(102),
+                       new ReduceAction933(102),
+                       new ReduceAction925(102),
+                       new ReduceAction344(103),
+                       new ReduceAction345(104),
+                       new ReduceAction346(104),
+                       new ReduceAction347(104),
+                       new ReduceAction348(104),
+                       new ReduceAction349(104),
+                       new ReduceAction350(104),
+                       new ReduceAction351(104),
+                       new ReduceAction352(104),
+                       new ReduceAction353(104),
+                       new ReduceAction354(104),
+                       new ReduceAction355(104),
+                       new ReduceAction356(104),
+                       new ReduceAction361(104),
+                       new ReduceAction362(104),
+                       new ReduceAction363(104),
+                       new ReduceAction364(104),
+                       new ReduceAction365(104),
+                       new ReduceAction366(104),
+                       new ReduceAction367(104),
+                       new ReduceAction368(104),
+                       new ReduceAction369(104),
+                       new ReduceAction370(104),
+                       new ReduceAction371(104),
+                       new ReduceAction372(104),
+                       new ReduceAction373(104),
+                       new ReduceAction374(104),
+                       new ReduceAction375(104),
+                       new ReduceAction376(104),
+                       new ReduceAction377(104),
+                       new ReduceAction378(104),
+                       new ReduceAction379(104),
+                       new ReduceAction380(104),
+                       new ReduceAction545(105),
+                       new ReduceAction546(105),
+                       new ReduceAction547(105),
+                       new ReduceAction548(105),
+                       new ReduceAction553(105),
+                       new ReduceAction554(105),
+                       new ReduceAction596(106),
+                       new ReduceAction597(106),
+                       new ReduceAction598(106),
+                       new ReduceAction599(106),
+                       new ReduceAction611(107),
+                       new ReduceAction646(107),
+                       new ReduceAction647(107),
+                       new ReduceAction648(107),
+                       new ReduceAction651(107),
+                       new ReduceAction649(107),
+                       new ReduceAction652(107),
+                       new ReduceAction648(107),
+                       new ReduceAction651(107),
+                       new ReduceAction611(108),
+                       new ReduceAction765(108),
+                       new ReduceAction611(109),
+                       new ReduceAction767(109),
+                       new ReduceAction768(109),
+                       new ReduceAction769(109),
+                       new ReduceAction611(110),
+                       new ReduceAction771(110),
+                       new ReduceAction611(111),
+                       new ReduceAction773(111),
+                       new ReduceAction774(111),
+                       new ReduceAction775(111),
+                       new ReduceAction776(111),
+                       new ReduceAction777(111),
+                       new ReduceAction778(111),
+                       new ReduceAction779(111),
+                       new ReduceAction780(111),
+                       new ReduceAction781(111),
+                       new ReduceAction782(111),
+                       new ReduceAction783(111),
+                       new ReduceAction611(112),
+                       new ReduceAction785(112),
+                       new ReduceAction786(112),
+                       new ReduceAction611(113),
+                       new ReduceAction788(113),
+                       new ReduceAction789(113),
+                       new ReduceAction790(113),
+                       new ReduceAction611(114),
+                       new ReduceAction792(114),
+                       new ReduceAction793(114),
+                       new ReduceAction611(115),
+                       new ReduceAction795(115),
+                       new ReduceAction796(115),
+                       new ReduceAction797(115),
+                       new ReduceAction798(115),
+                       new ReduceAction801(115),
+                       new ReduceAction799(115),
+                       new ReduceAction802(115),
+                       new ReduceAction798(115),
+                       new ReduceAction801(115),
+                       new ReduceAction804(116),
+                       new ReduceAction805(116),
+                       new ReduceAction806(116),
+                       new ReduceAction809(116),
+                       new ReduceAction807(116),
+                       new ReduceAction810(116),
+                       new ReduceAction806(116),
+                       new ReduceAction809(116),
+                       new ReduceAction638(116),
+                       new ReduceAction639(116),
+                       new ReduceAction640(116),
+                       new ReduceAction643(116),
+                       new ReduceAction641(116),
+                       new ReduceAction644(116),
+                       new ReduceAction640(116),
+                       new ReduceAction643(116),
+                       new ReduceAction654(116),
+                       new ReduceAction655(116),
+                       new ReduceAction656(116),
+                       new ReduceAction657(116),
+                       new ReduceAction658(116),
+                       new ReduceAction659(116),
+                       new ReduceAction827(116),
+                       new ReduceAction828(116),
+                       new ReduceAction829(116),
+                       new ReduceAction828(116),
+                       new ReduceAction837(116),
+                       new ReduceAction838(116),
+                       new ReduceAction839(116),
+                       new ReduceAction840(116),
+                       new ReduceAction841(116),
+                       new ReduceAction842(116),
+                       new ReduceAction843(116),
+                       new ReduceAction844(116),
+                       new ReduceAction845(116),
+                       new ReduceAction846(116),
+                       new ReduceAction847(116),
+                       new ReduceAction848(116),
+                       new ReduceAction849(116),
+                       new ReduceAction850(116),
+                       new ReduceAction851(116),
+                       new ReduceAction852(116),
+                       new ReduceAction611(116),
+                       new ReduceAction854(116),
+                       new ReduceAction855(116),
+                       new ReduceAction856(116),
+                       new ReduceAction857(116),
+                       new ReduceAction596(117),
+                       new ReduceAction597(117),
+                       new ReduceAction598(117),
+                       new ReduceAction599(117),
+                       new ReduceAction600(117),
+                       new ReduceAction601(117),
+                       new ReduceAction602(117),
+                       new ReduceAction603(117),
+                       new ReduceAction611(118),
+                       new ReduceAction611(118),
+                       new ReduceAction621(118),
+                       new ReduceAction622(118),
+                       new ReduceAction623(118),
+                       new ReduceAction624(118),
+                       new ReduceAction625(118),
+                       new ReduceAction626(118),
+                       new ReduceAction627(118),
+                       new ReduceAction628(118),
+                       new ReduceAction629(118),
+                       new ReduceAction630(118),
+                       new ReduceAction631(118),
+                       new ReduceAction611(118),
+                       new ReduceAction611(118),
+                       new ReduceAction611(118),
+                       new ReduceAction611(118),
+                       new ReduceAction611(118),
+                       new ReduceAction611(118),
+                       new ReduceAction638(118),
+                       new ReduceAction639(118),
+                       new ReduceAction640(118),
+                       new ReduceAction641(118),
+                       new ReduceAction640(118),
+                       new ReduceAction643(118),
+                       new ReduceAction644(118),
+                       new ReduceAction643(118),
+                       new ReduceAction646(118),
+                       new ReduceAction647(118),
+                       new ReduceAction648(118),
+                       new ReduceAction649(118),
+                       new ReduceAction648(118),
+                       new ReduceAction651(118),
+                       new ReduceAction652(118),
+                       new ReduceAction651(118),
+                       new ReduceAction654(118),
+                       new ReduceAction655(118),
+                       new ReduceAction656(118),
+                       new ReduceAction657(118),
+                       new ReduceAction658(118),
+                       new ReduceAction659(118),
+                       new ReduceAction660(118),
+                       new ReduceAction661(118),
+                       new ReduceAction660(118),
+                       new ReduceAction663(118),
+                       new ReduceAction664(118),
+                       new ReduceAction663(118),
+                       new ReduceAction666(118),
+                       new ReduceAction696(119),
+                       new ReduceAction697(119),
+                       new ReduceAction698(119),
+                       new ReduceAction699(119),
+                       new ReduceAction698(119),
+                       new ReduceAction701(119),
+                       new ReduceAction702(119),
+                       new ReduceAction701(119),
+                       new ReduceAction704(119),
+                       new ReduceAction705(119),
+                       new ReduceAction706(119),
+                       new ReduceAction707(119),
+                       new ReduceAction706(119),
+                       new ReduceAction709(119),
+                       new ReduceAction710(119),
+                       new ReduceAction709(119),
+                       new ReduceAction712(119),
+                       new ReduceAction713(119),
+                       new ReduceAction714(119),
+                       new ReduceAction715(119),
+                       new ReduceAction716(119),
+                       new ReduceAction715(119),
+                       new ReduceAction718(119),
+                       new ReduceAction719(119),
+                       new ReduceAction718(119),
+                       new ReduceAction721(119),
+                       new ReduceAction722(119),
+                       new ReduceAction723(119),
+                       new ReduceAction724(119),
+                       new ReduceAction723(119),
+                       new ReduceAction726(119),
+                       new ReduceAction727(119),
+                       new ReduceAction726(119),
+                       new ReduceAction729(119),
+                       new ReduceAction611(120),
+                       new ReduceAction646(120),
+                       new ReduceAction647(120),
+                       new ReduceAction648(120),
+                       new ReduceAction649(120),
+                       new ReduceAction648(120),
+                       new ReduceAction651(120),
+                       new ReduceAction652(120),
+                       new ReduceAction651(120),
+                       new ReduceAction611(121),
+                       new ReduceAction765(121),
+                       new ReduceAction611(122),
+                       new ReduceAction767(122),
+                       new ReduceAction768(122),
+                       new ReduceAction769(122),
+                       new ReduceAction611(123),
+                       new ReduceAction771(123),
+                       new ReduceAction611(124),
+                       new ReduceAction773(124),
+                       new ReduceAction774(124),
+                       new ReduceAction775(124),
+                       new ReduceAction776(124),
+                       new ReduceAction777(124),
+                       new ReduceAction778(124),
+                       new ReduceAction779(124),
+                       new ReduceAction780(124),
+                       new ReduceAction781(124),
+                       new ReduceAction782(124),
+                       new ReduceAction783(124),
+                       new ReduceAction611(125),
+                       new ReduceAction785(125),
+                       new ReduceAction786(125),
+                       new ReduceAction611(126),
+                       new ReduceAction788(126),
+                       new ReduceAction789(126),
+                       new ReduceAction790(126),
+                       new ReduceAction611(127),
+                       new ReduceAction792(127),
+                       new ReduceAction793(127),
+                       new ReduceAction611(128),
+                       new ReduceAction795(128),
+                       new ReduceAction796(128),
+                       new ReduceAction797(128),
+                       new ReduceAction798(128),
+                       new ReduceAction799(128),
+                       new ReduceAction798(128),
+                       new ReduceAction801(128),
+                       new ReduceAction802(128),
+                       new ReduceAction801(128),
+                       new ReduceAction804(129),
+                       new ReduceAction805(129),
+                       new ReduceAction806(129),
+                       new ReduceAction807(129),
+                       new ReduceAction806(129),
+                       new ReduceAction809(129),
+                       new ReduceAction810(129),
+                       new ReduceAction809(129),
+                       new ReduceAction638(129),
+                       new ReduceAction639(129),
+                       new ReduceAction640(129),
+                       new ReduceAction641(129),
+                       new ReduceAction640(129),
+                       new ReduceAction643(129),
+                       new ReduceAction644(129),
+                       new ReduceAction643(129),
+                       new ReduceAction654(129),
+                       new ReduceAction655(129),
+                       new ReduceAction656(129),
+                       new ReduceAction657(129),
+                       new ReduceAction658(129),
+                       new ReduceAction659(129),
+                       new ReduceAction826(129),
+                       new ReduceAction827(129),
+                       new ReduceAction828(129),
+                       new ReduceAction829(129),
+                       new ReduceAction828(129),
+                       new ReduceAction837(129),
+                       new ReduceAction838(129),
+                       new ReduceAction839(129),
+                       new ReduceAction840(129),
+                       new ReduceAction841(129),
+                       new ReduceAction842(129),
+                       new ReduceAction843(129),
+                       new ReduceAction844(129),
+                       new ReduceAction845(129),
+                       new ReduceAction846(129),
+                       new ReduceAction847(129),
+                       new ReduceAction848(129),
+                       new ReduceAction849(129),
+                       new ReduceAction850(129),
+                       new ReduceAction851(129),
+                       new ReduceAction852(129),
+                       new ReduceAction611(129),
+                       new ReduceAction856(129),
+                       new ReduceAction857(129),
+                       new ReduceAction867(130),
+                       new ReduceAction868(130),
+                       new ReduceAction869(131),
+                       new ReduceAction870(131),
+                       new ReduceAction883(132),
+                       new ReduceAction884(132),
+                       new ReduceAction886(133),
+                       new ReduceAction887(133),
+                       new ReduceAction887(133),
+                       new ReduceAction596(134),
+                       new ReduceAction597(134),
+                       new ReduceAction598(134),
+                       new ReduceAction599(134),
+                       new ReduceAction611(135),
+                       new ReduceAction646(135),
+                       new ReduceAction647(135),
+                       new ReduceAction648(135),
+                       new ReduceAction651(135),
+                       new ReduceAction649(135),
+                       new ReduceAction652(135),
+                       new ReduceAction648(135),
+                       new ReduceAction651(135),
+                       new ReduceAction611(136),
+                       new ReduceAction765(136),
+                       new ReduceAction611(137),
+                       new ReduceAction767(137),
+                       new ReduceAction768(137),
+                       new ReduceAction769(137),
+                       new ReduceAction611(138),
+                       new ReduceAction771(138),
+                       new ReduceAction611(139),
+                       new ReduceAction773(139),
+                       new ReduceAction774(139),
+                       new ReduceAction775(139),
+                       new ReduceAction776(139),
+                       new ReduceAction777(139),
+                       new ReduceAction778(139),
+                       new ReduceAction779(139),
+                       new ReduceAction780(139),
+                       new ReduceAction781(139),
+                       new ReduceAction782(139),
+                       new ReduceAction783(139),
+                       new ReduceAction611(140),
+                       new ReduceAction785(140),
+                       new ReduceAction786(140),
+                       new ReduceAction611(141),
+                       new ReduceAction788(141),
+                       new ReduceAction789(141),
+                       new ReduceAction790(141),
+                       new ReduceAction611(142),
+                       new ReduceAction792(142),
+                       new ReduceAction793(142),
+                       new ReduceAction611(143),
+                       new ReduceAction795(143),
+                       new ReduceAction1313(143),
+                       new ReduceAction1314(143),
+                       new ReduceAction796(143),
+                       new ReduceAction1314(143),
+                       new ReduceAction1317(144),
+                       new ReduceAction1318(144),
+                       new ReduceAction804(144),
+                       new ReduceAction1318(144),
+                       new ReduceAction1321(144),
+                       new ReduceAction1322(144),
+                       new ReduceAction638(144),
+                       new ReduceAction1322(144),
+                       new ReduceAction654(144),
+                       new ReduceAction655(144),
+                       new ReduceAction656(144),
+                       new ReduceAction657(144),
+                       new ReduceAction1329(144),
+                       new ReduceAction827(144),
+                       new ReduceAction828(144),
+                       new ReduceAction829(144),
+                       new ReduceAction828(144),
+                       new ReduceAction837(144),
+                       new ReduceAction838(144),
+                       new ReduceAction839(144),
+                       new ReduceAction840(144),
+                       new ReduceAction841(144),
+                       new ReduceAction842(144),
+                       new ReduceAction843(144),
+                       new ReduceAction844(144),
+                       new ReduceAction845(144),
+                       new ReduceAction846(144),
+                       new ReduceAction847(144),
+                       new ReduceAction848(144),
+                       new ReduceAction849(144),
+                       new ReduceAction850(144),
+                       new ReduceAction851(144),
+                       new ReduceAction852(144),
+                       new ReduceAction611(144),
+                       new ReduceAction856(144),
+                       new ReduceAction857(144),
+                       new ReduceAction1353(145),
+                       new ReduceAction1354(145),
+                       new ReduceAction608(146),
+                       new ReduceAction609(146),
+                       new ReduceAction610(146),
+                       new ReduceAction611(146),
+                       new ReduceAction611(147),
+                       new ReduceAction611(147),
+                       new ReduceAction621(147),
+                       new ReduceAction622(147),
+                       new ReduceAction623(147),
+                       new ReduceAction624(147),
+                       new ReduceAction625(147),
+                       new ReduceAction626(147),
+                       new ReduceAction627(147),
+                       new ReduceAction628(147),
+                       new ReduceAction629(147),
+                       new ReduceAction630(147),
+                       new ReduceAction631(147),
+                       new ReduceAction611(147),
+                       new ReduceAction611(147),
+                       new ReduceAction611(147),
+                       new ReduceAction611(147),
+                       new ReduceAction611(147),
+                       new ReduceAction611(147),
+                       new ReduceAction638(147),
+                       new ReduceAction639(147),
+                       new ReduceAction640(147),
+                       new ReduceAction641(147),
+                       new ReduceAction640(147),
+                       new ReduceAction643(147),
+                       new ReduceAction644(147),
+                       new ReduceAction643(147),
+                       new ReduceAction646(147),
+                       new ReduceAction647(147),
+                       new ReduceAction648(147),
+                       new ReduceAction649(147),
+                       new ReduceAction648(147),
+                       new ReduceAction651(147),
+                       new ReduceAction652(147),
+                       new ReduceAction651(147),
+                       new ReduceAction654(147),
+                       new ReduceAction655(147),
+                       new ReduceAction656(147),
+                       new ReduceAction657(147),
+                       new ReduceAction658(147),
+                       new ReduceAction659(147),
+                       new ReduceAction660(147),
+                       new ReduceAction661(147),
+                       new ReduceAction660(147),
+                       new ReduceAction663(147),
+                       new ReduceAction664(147),
+                       new ReduceAction663(147),
+                       new ReduceAction666(147),
+                       new ReduceAction668(148),
+                       new ReduceAction669(148),
+                       new ReduceAction670(149),
+                       new ReduceAction671(149),
+                       new ReduceAction672(149),
+                       new ReduceAction673(149),
+                       new ReduceAction674(149),
+                       new ReduceAction675(149),
+                       new ReduceAction676(149),
+                       new ReduceAction677(149),
+                       new ReduceAction678(149),
+                       new ReduceAction687(150),
+                       new ReduceAction688(151),
+                       new ReduceAction689(151),
+                       new ReduceAction690(151),
+                       new ReduceAction691(151),
+                       new ReduceAction692(151),
+                       new ReduceAction693(151),
+                       new ReduceAction694(151),
+                       new ReduceAction695(151),
+                       new ReduceAction696(152),
+                       new ReduceAction697(152),
+                       new ReduceAction698(152),
+                       new ReduceAction699(152),
+                       new ReduceAction698(152),
+                       new ReduceAction701(152),
+                       new ReduceAction702(152),
+                       new ReduceAction701(152),
+                       new ReduceAction704(152),
+                       new ReduceAction705(152),
+                       new ReduceAction706(152),
+                       new ReduceAction707(152),
+                       new ReduceAction706(152),
+                       new ReduceAction709(152),
+                       new ReduceAction710(152),
+                       new ReduceAction709(152),
+                       new ReduceAction712(152),
+                       new ReduceAction713(152),
+                       new ReduceAction714(152),
+                       new ReduceAction715(152),
+                       new ReduceAction716(152),
+                       new ReduceAction715(152),
+                       new ReduceAction718(152),
+                       new ReduceAction719(152),
+                       new ReduceAction718(152),
+                       new ReduceAction721(152),
+                       new ReduceAction722(152),
+                       new ReduceAction723(152),
+                       new ReduceAction724(152),
+                       new ReduceAction723(152),
+                       new ReduceAction726(152),
+                       new ReduceAction727(152),
+                       new ReduceAction726(152),
+                       new ReduceAction729(152),
+                       new ReduceAction732(153),
+                       new ReduceAction733(153),
+                       new ReduceAction734(154),
+                       new ReduceAction741(155),
+                       new ReduceAction742(155),
+                       new ReduceAction743(156),
+                       new ReduceAction744(156),
+                       new ReduceAction745(157),
+                       new ReduceAction746(157),
+                       new ReduceAction747(157),
+                       new ReduceAction748(157),
+                       new ReduceAction749(158),
+                       new ReduceAction750(158),
+                       new ReduceAction611(159),
+                       new ReduceAction646(159),
+                       new ReduceAction647(159),
+                       new ReduceAction648(159),
+                       new ReduceAction649(159),
+                       new ReduceAction648(159),
+                       new ReduceAction651(159),
+                       new ReduceAction652(159),
+                       new ReduceAction651(159),
+                       new ReduceAction763(159),
+                       new ReduceAction611(160),
+                       new ReduceAction646(160),
+                       new ReduceAction647(160),
+                       new ReduceAction648(160),
+                       new ReduceAction651(160),
+                       new ReduceAction649(160),
+                       new ReduceAction652(160),
+                       new ReduceAction648(160),
+                       new ReduceAction651(160),
+                       new ReduceAction611(161),
+                       new ReduceAction611(161),
+                       new ReduceAction621(161),
+                       new ReduceAction622(161),
+                       new ReduceAction623(161),
+                       new ReduceAction624(161),
+                       new ReduceAction625(161),
+                       new ReduceAction626(161),
+                       new ReduceAction627(161),
+                       new ReduceAction628(161),
+                       new ReduceAction629(161),
+                       new ReduceAction630(161),
+                       new ReduceAction631(161),
+                       new ReduceAction611(161),
+                       new ReduceAction611(161),
+                       new ReduceAction611(161),
+                       new ReduceAction611(161),
+                       new ReduceAction611(161),
+                       new ReduceAction611(161),
+                       new ReduceAction638(161),
+                       new ReduceAction639(161),
+                       new ReduceAction640(161),
+                       new ReduceAction641(161),
+                       new ReduceAction640(161),
+                       new ReduceAction643(161),
+                       new ReduceAction644(161),
+                       new ReduceAction643(161),
+                       new ReduceAction646(161),
+                       new ReduceAction647(161),
+                       new ReduceAction648(161),
+                       new ReduceAction649(161),
+                       new ReduceAction648(161),
+                       new ReduceAction651(161),
+                       new ReduceAction652(161),
+                       new ReduceAction651(161),
+                       new ReduceAction654(161),
+                       new ReduceAction655(161),
+                       new ReduceAction656(161),
+                       new ReduceAction657(161),
+                       new ReduceAction658(161),
+                       new ReduceAction659(161),
+                       new ReduceAction660(161),
+                       new ReduceAction661(161),
+                       new ReduceAction660(161),
+                       new ReduceAction663(161),
+                       new ReduceAction664(161),
+                       new ReduceAction663(161),
+                       new ReduceAction666(161),
+                       new ReduceAction696(162),
+                       new ReduceAction697(162),
+                       new ReduceAction698(162),
+                       new ReduceAction699(162),
+                       new ReduceAction698(162),
+                       new ReduceAction701(162),
+                       new ReduceAction702(162),
+                       new ReduceAction701(162),
+                       new ReduceAction704(162),
+                       new ReduceAction705(162),
+                       new ReduceAction706(162),
+                       new ReduceAction707(162),
+                       new ReduceAction706(162),
+                       new ReduceAction709(162),
+                       new ReduceAction710(162),
+                       new ReduceAction709(162),
+                       new ReduceAction712(162),
+                       new ReduceAction713(162),
+                       new ReduceAction714(162),
+                       new ReduceAction715(162),
+                       new ReduceAction716(162),
+                       new ReduceAction715(162),
+                       new ReduceAction718(162),
+                       new ReduceAction719(162),
+                       new ReduceAction718(162),
+                       new ReduceAction721(162),
+                       new ReduceAction722(162),
+                       new ReduceAction723(162),
+                       new ReduceAction724(162),
+                       new ReduceAction723(162),
+                       new ReduceAction726(162),
+                       new ReduceAction727(162),
+                       new ReduceAction726(162),
+                       new ReduceAction729(162),
+                       new ReduceAction611(163),
+                       new ReduceAction646(163),
+                       new ReduceAction647(163),
+                       new ReduceAction648(163),
+                       new ReduceAction649(163),
+                       new ReduceAction648(163),
+                       new ReduceAction651(163),
+                       new ReduceAction652(163),
+                       new ReduceAction651(163),
+                       new ReduceAction611(164),
+                       new ReduceAction646(164),
+                       new ReduceAction647(164),
+                       new ReduceAction648(164),
+                       new ReduceAction651(164),
+                       new ReduceAction649(164),
+                       new ReduceAction652(164),
+                       new ReduceAction648(164),
+                       new ReduceAction651(164),
+                       new ReduceAction608(165),
+                       new ReduceAction609(165),
+                       new ReduceAction610(165),
+                       new ReduceAction608(166),
+                       new ReduceAction609(166),
+                       new ReduceAction610(166),
+                       new ReduceAction611(167),
+                       new ReduceAction611(167),
+                       new ReduceAction621(167),
+                       new ReduceAction622(167),
+                       new ReduceAction623(167),
+                       new ReduceAction624(167),
+                       new ReduceAction625(167),
+                       new ReduceAction626(167),
+                       new ReduceAction627(167),
+                       new ReduceAction628(167),
+                       new ReduceAction629(167),
+                       new ReduceAction630(167),
+                       new ReduceAction631(167),
+                       new ReduceAction611(167),
+                       new ReduceAction611(167),
+                       new ReduceAction611(167),
+                       new ReduceAction611(167),
+                       new ReduceAction611(167),
+                       new ReduceAction666(167),
+                       new ReduceAction611(168),
+                       new ReduceAction611(168),
+                       new ReduceAction621(168),
+                       new ReduceAction622(168),
+                       new ReduceAction623(168),
+                       new ReduceAction624(168),
+                       new ReduceAction625(168),
+                       new ReduceAction626(168),
+                       new ReduceAction627(168),
+                       new ReduceAction628(168),
+                       new ReduceAction629(168),
+                       new ReduceAction630(168),
+                       new ReduceAction631(168),
+                       new ReduceAction611(168),
+                       new ReduceAction611(168),
+                       new ReduceAction611(168),
+                       new ReduceAction611(168),
+                       new ReduceAction611(168),
+                       new ReduceAction666(168),
+                       new ReduceAction611(169),
+                       new ReduceAction611(169),
+                       new ReduceAction621(169),
+                       new ReduceAction622(169),
+                       new ReduceAction623(169),
+                       new ReduceAction624(169),
+                       new ReduceAction625(169),
+                       new ReduceAction626(169),
+                       new ReduceAction627(169),
+                       new ReduceAction628(169),
+                       new ReduceAction629(169),
+                       new ReduceAction630(169),
+                       new ReduceAction631(169),
+                       new ReduceAction611(169),
+                       new ReduceAction611(169),
+                       new ReduceAction611(169),
+                       new ReduceAction611(169),
+                       new ReduceAction611(169),
+                       new ReduceAction666(169),
+                       new ReduceAction611(170),
+                       new ReduceAction611(170),
+                       new ReduceAction621(170),
+                       new ReduceAction622(170),
+                       new ReduceAction623(170),
+                       new ReduceAction624(170),
+                       new ReduceAction625(170),
+                       new ReduceAction626(170),
+                       new ReduceAction627(170),
+                       new ReduceAction628(170),
+                       new ReduceAction629(170),
+                       new ReduceAction630(170),
+                       new ReduceAction631(170),
+                       new ReduceAction611(170),
+                       new ReduceAction611(170),
+                       new ReduceAction611(170),
+                       new ReduceAction611(170),
+                       new ReduceAction611(170),
+                       new ReduceAction666(170),
+                       new ReduceAction611(171),
+                       new ReduceAction765(171),
+                       new ReduceAction611(172),
+                       new ReduceAction767(172),
+                       new ReduceAction768(172),
+                       new ReduceAction769(172),
+                       new ReduceAction611(173),
+                       new ReduceAction771(173),
+                       new ReduceAction611(174),
+                       new ReduceAction773(174),
+                       new ReduceAction775(174),
+                       new ReduceAction776(174),
+                       new ReduceAction777(174),
+                       new ReduceAction778(174),
+                       new ReduceAction779(174),
+                       new ReduceAction780(174),
+                       new ReduceAction781(174),
+                       new ReduceAction782(174),
+                       new ReduceAction783(174),
+                       new ReduceAction611(175),
+                       new ReduceAction765(175),
+                       new ReduceAction611(176),
+                       new ReduceAction767(176),
+                       new ReduceAction768(176),
+                       new ReduceAction769(176),
+                       new ReduceAction611(177),
+                       new ReduceAction771(177),
+                       new ReduceAction611(178),
+                       new ReduceAction773(178),
+                       new ReduceAction775(178),
+                       new ReduceAction776(178),
+                       new ReduceAction777(178),
+                       new ReduceAction778(178),
+                       new ReduceAction779(178),
+                       new ReduceAction780(178),
+                       new ReduceAction781(178),
+                       new ReduceAction782(178),
+                       new ReduceAction783(178),
+                       new ReduceAction611(179),
+                       new ReduceAction765(179),
+                       new ReduceAction611(180),
+                       new ReduceAction767(180),
+                       new ReduceAction768(180),
+                       new ReduceAction769(180),
+                       new ReduceAction611(181),
+                       new ReduceAction771(181),
+                       new ReduceAction611(182),
+                       new ReduceAction773(182),
+                       new ReduceAction775(182),
+                       new ReduceAction776(182),
+                       new ReduceAction777(182),
+                       new ReduceAction778(182),
+                       new ReduceAction779(182),
+                       new ReduceAction780(182),
+                       new ReduceAction781(182),
+                       new ReduceAction782(182),
+                       new ReduceAction783(182),
+                       new ReduceAction611(183),
+                       new ReduceAction765(183),
+                       new ReduceAction611(184),
+                       new ReduceAction767(184),
+                       new ReduceAction768(184),
+                       new ReduceAction769(184),
+                       new ReduceAction611(185),
+                       new ReduceAction771(185),
+                       new ReduceAction611(186),
+                       new ReduceAction773(186),
+                       new ReduceAction775(186),
+                       new ReduceAction776(186),
+                       new ReduceAction777(186),
+                       new ReduceAction778(186),
+                       new ReduceAction779(186),
+                       new ReduceAction780(186),
+                       new ReduceAction781(186),
+                       new ReduceAction782(186),
+                       new ReduceAction783(186),
+                       new ReduceAction877(187),
+                       new ReduceAction878(187),
+                       new ReduceAction879(187),
+                       new ReduceAction880(187),
+                       new ReduceAction881(187),
+                       new ReduceAction890(188),
+                       new ReduceAction891(188),
+                       new ReduceAction892(188),
+                       new ReduceAction891(188),
+                       new ReduceAction902(188),
+                       new ReduceAction903(188),
+                       new ReduceAction904(188),
+                       new ReduceAction903(188),
+                       new ReduceAction1764(189),
+                       new ReduceAction1765(189),
+                       new ReduceAction1766(190),
+                       new ReduceAction1767(190),
+                       new ReduceAction1768(191),
+                       new ReduceAction1769(191),
+                       new ReduceAction1770(192),
+                       new ReduceAction1771(192),
+                       new ReduceAction1772(193),
+                       new ReduceAction1773(193),
+                       new ReduceAction1770(194),
+                       new ReduceAction1771(194),
+                       new ReduceAction1776(195),
+                       new ReduceAction1777(195),
+                       new ReduceAction1778(196),
+                       new ReduceAction1779(196),
+                       new ReduceAction1780(197),
+                       new ReduceAction1781(197),
+                       new ReduceAction1782(198),
+                       new ReduceAction1783(198),
+                       new ReduceAction604(199),
+                       new ReduceAction1785(199),
+                       new ReduceAction1786(200),
+                       new ReduceAction1787(200),
+                       new ReduceAction572(201),
+                       new ReduceAction1789(201),
+                       new ReduceAction874(202),
+                       new ReduceAction1791(202),
+                       new ReduceAction874(203),
+                       new ReduceAction1791(203),
+                       new ReduceAction883(204),
+                       new ReduceAction1795(204),
+                       new ReduceAction1786(205),
+                       new ReduceAction1787(205),
+                       new ReduceAction917(206),
+                       new ReduceAction1799(206),
+                       new ReduceAction1800(207),
+                       new ReduceAction1801(207),
+                       new ReduceAction1802(208),
+                       new ReduceAction1803(208),
+                       new ReduceAction874(209),
+                       new ReduceAction1791(209)
                )
        end
 end
@@ -3994,34 +4508,31 @@ private class ReduceAction75
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var listnode10 = new Array[Object]
                                        var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var tkwendnode13 = nodearraylist8
-                                       assert tkwendnode13 isa nullable TKwend
+                                       var tkwendnode12 = nodearraylist8
+                                       assert tkwendnode12 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode8,
+                                               listnode7,
                                                null,
                                                null,
+                                               listnode10,
                                                listnode11,
-                                               listnode12,
-                                               tkwendnode13
+                                               tkwendnode12
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -4041,46 +4552,42 @@ private class ReduceAction76
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var listnode10 = new Array[Object]
                                        var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
+                                       var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
+                                       var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var tkwendnode13 = nodearraylist9
-                                       assert tkwendnode13 isa nullable TKwend
+                                       var tkwendnode12 = nodearraylist9
+                                       assert tkwendnode12 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode8,
+                                               listnode7,
                                                null,
                                                null,
+                                               listnode10,
                                                listnode11,
-                                               listnode12,
-                                               tkwendnode13
+                                               tkwendnode12
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction77
+private class ReduceAction78
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -4090,50 +4597,43 @@ private class ReduceAction77
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode16 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
+                                       var pclasskindnode5 = nodearraylist4
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var tkwendnode17 = nodearraylist8
-                                       assert tkwendnode17 isa nullable TKwend
+                                       var tkwendnode12 = nodearraylist9
+                                       assert tkwendnode12 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode7,
-                                               pannotationsnode8,
                                                null,
-                                               listnode15,
-                                               listnode16,
-                                               tkwendnode17
+                                               null,
+                                               listnode10,
+                                               listnode11,
+                                               tkwendnode12
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction78
+private class ReduceAction79
        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
@@ -4144,8 +4644,8 @@ private class ReduceAction78
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode16 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -4154,20 +4654,10 @@ private class ReduceAction78
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist8
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var tkwendnode17 = nodearraylist9
-                                       assert tkwendnode17 isa nullable TKwend
+                                       var tkwendnode12 = nodearraylist10
+                                       assert tkwendnode12 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -4175,22 +4665,21 @@ private class ReduceAction78
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode7,
-                                               pannotationsnode8,
                                                null,
-                                               listnode15,
-                                               listnode16,
-                                               tkwendnode17
+                                               null,
+                                               listnode10,
+                                               listnode11,
+                                               tkwendnode12
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction79
+private class ReduceAction81
        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
@@ -4200,8 +4689,8 @@ private class ReduceAction79
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
@@ -4213,18 +4702,8 @@ private class ReduceAction79
                                        var listnode7 = nodearraylist6
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var tkwendnode18 = nodearraylist9
-                                       assert tkwendnode18 isa nullable TKwend
+                                       var tkwendnode13 = nodearraylist8
+                                       assert tkwendnode13 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
@@ -4232,22 +4711,21 @@ private class ReduceAction79
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode8,
-                                               pannotationsnode9,
                                                null,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
+                                               null,
+                                               listnode11,
+                                               listnode12,
+                                               tkwendnode13
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction80
+private class ReduceAction82
        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
@@ -4258,8 +4736,8 @@ private class ReduceAction80
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -4273,18 +4751,8 @@ private class ReduceAction80
                                        var listnode7 = nodearraylist7
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var tkwendnode18 = nodearraylist10
-                                       assert tkwendnode18 isa nullable TKwend
+                                       var tkwendnode13 = nodearraylist9
+                                       assert tkwendnode13 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -4292,21 +4760,22 @@ private class ReduceAction80
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode8,
-                                               pannotationsnode9,
                                                null,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
+                                               null,
+                                               listnode11,
+                                               listnode12,
+                                               tkwendnode13
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction81
+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
@@ -4315,43 +4784,45 @@ private class ReduceAction81
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
+                                       var listnode8 = new Array[Object]
                                        var listnode11 = new Array[Object]
+                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist6
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var tkwendnode12 = nodearraylist8
-                                       assert tkwendnode12 isa nullable TKwend
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tkwendnode13 = nodearraylist9
+                                       assert tkwendnode13 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode7,
+                                               listnode8,
+                                               null,
                                                null,
-                                               pexterncodeblocknode9,
-                                               listnode10,
                                                listnode11,
-                                               tkwendnode12
+                                               listnode12,
+                                               tkwendnode13
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction82
+private class ReduceAction84
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -4361,45 +4832,45 @@ private class ReduceAction82
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
+                                       var listnode8 = new Array[Object]
                                        var listnode11 = new Array[Object]
+                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
+                                       var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
+                                       var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist7
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var tkwendnode12 = nodearraylist9
-                                       assert tkwendnode12 isa nullable TKwend
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tkwendnode13 = nodearraylist10
+                                       assert tkwendnode13 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode7,
+                                               listnode8,
+                                               null,
                                                null,
-                                               pexterncodeblocknode9,
-                                               listnode10,
                                                listnode11,
-                                               tkwendnode12
+                                               listnode12,
+                                               tkwendnode13
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction83
+private class ReduceAction86
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -4414,28 +4885,28 @@ private class ReduceAction83
                                        var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
+                                       var pclasskindnode5 = nodearraylist4
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
+                                       var listnode7 = nodearraylist8
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var tkwendnode13 = nodearraylist9
+                                       var tkwendnode13 = nodearraylist10
                                        assert tkwendnode13 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode8,
                                                null,
-                                               pexterncodeblocknode10,
+                                               null,
                                                listnode11,
                                                listnode12,
                                                tkwendnode13
@@ -4444,11 +4915,12 @@ private class ReduceAction83
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction84
+private class ReduceAction87
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -4470,14 +4942,12 @@ private class ReduceAction84
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist8
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
+                                       var listnode7 = nodearraylist9
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var tkwendnode13 = nodearraylist10
+                                       var tkwendnode13 = nodearraylist11
                                        assert tkwendnode13 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
@@ -4487,7 +4957,7 @@ private class ReduceAction84
                                                tclassidnode6,
                                                listnode8,
                                                null,
-                                               pexterncodeblocknode10,
+                                               null,
                                                listnode11,
                                                listnode12,
                                                tkwendnode13
@@ -4496,12 +4966,11 @@ private class ReduceAction84
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction85
+private class ReduceAction89
        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
@@ -4531,9 +5000,7 @@ private class ReduceAction85
                                                listnode12,
                                                null
                                        )
-                                       var pexterncodeblocknode14 = nodearraylist7
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var tkwendnode17 = nodearraylist9
+                                       var tkwendnode17 = nodearraylist8
                                        assert tkwendnode17 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
@@ -4543,7 +5010,7 @@ private class ReduceAction85
                                                tclassidnode6,
                                                listnode7,
                                                pannotationsnode8,
-                                               pexterncodeblocknode14,
+                                               null,
                                                listnode15,
                                                listnode16,
                                                tkwendnode17
@@ -4552,12 +5019,11 @@ private class ReduceAction85
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction86
+private class ReduceAction90
        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
@@ -4590,9 +5056,7 @@ private class ReduceAction86
                                                listnode12,
                                                null
                                        )
-                                       var pexterncodeblocknode14 = nodearraylist8
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var tkwendnode17 = nodearraylist10
+                                       var tkwendnode17 = nodearraylist9
                                        assert tkwendnode17 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
@@ -4602,7 +5066,7 @@ private class ReduceAction86
                                                tclassidnode6,
                                                listnode7,
                                                pannotationsnode8,
-                                               pexterncodeblocknode14,
+                                               null,
                                                listnode15,
                                                listnode16,
                                                tkwendnode17
@@ -4611,12 +5075,11 @@ private class ReduceAction86
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction87
+private class ReduceAction91
        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
@@ -4626,57 +5089,51 @@ private class ReduceAction87
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var listnode15 = new Array[Object]
                                        var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist7
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
                                                null,
                                                null,
-                                               listnode13,
+                                               listnode12,
                                                null
                                        )
-                                       var pexterncodeblocknode15 = nodearraylist8
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var tkwendnode18 = nodearraylist10
-                                       assert tkwendnode18 isa nullable TKwend
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               null,
+                                               listnode15,
                                                listnode16,
-                                               listnode17,
-                                               tkwendnode18
+                                               tkwendnode17
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction88
+private class ReduceAction92
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -4687,58 +5144,53 @@ private class ReduceAction88
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var listnode15 = new Array[Object]
                                        var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
+                                       var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
+                                       var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
                                                null,
                                                null,
-                                               listnode13,
+                                               listnode12,
                                                null
                                        )
-                                       var pexterncodeblocknode15 = nodearraylist9
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var tkwendnode18 = nodearraylist11
-                                       assert tkwendnode18 isa nullable TKwend
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               null,
+                                               listnode15,
                                                listnode16,
-                                               listnode17,
-                                               tkwendnode18
+                                               tkwendnode17
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction89
+private class ReduceAction94
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -4748,43 +5200,54 @@ private class ReduceAction89
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
+                                       var listnode15 = new Array[Object]
+                                       var listnode16 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
+                                       var pclasskindnode5 = nodearraylist4
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode10 = nodearraylist6
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode13 = nodearraylist8
-                                       assert tkwendnode13 isa nullable TKwend
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode7,
+                                               pannotationsnode8,
                                                null,
-                                               null,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
+                                               listnode15,
+                                               listnode16,
+                                               tkwendnode17
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction90
+private class ReduceAction95
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -4795,8 +5258,8 @@ private class ReduceAction90
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
+                                       var listnode15 = new Array[Object]
+                                       var listnode16 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -4805,13 +5268,20 @@ private class ReduceAction90
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist8
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode10 = nodearraylist7
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode13 = nodearraylist9
-                                       assert tkwendnode13 isa nullable TKwend
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist9
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var tkwendnode17 = nodearraylist11
+                                       assert tkwendnode17 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -4819,17 +5289,17 @@ private class ReduceAction90
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode7,
+                                               pannotationsnode8,
                                                null,
-                                               null,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
+                                               listnode15,
+                                               listnode16,
+                                               tkwendnode17
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction91
+private class ReduceAction97
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4844,8 +5314,8 @@ private class ReduceAction91
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode13 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode17 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
@@ -4857,11 +5327,18 @@ private class ReduceAction91
                                        var listnode7 = nodearraylist6
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode14 = nodearraylist9
-                                       assert tkwendnode14 isa nullable TKwend
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist7
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var tkwendnode18 = nodearraylist9
+                                       assert tkwendnode18 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
@@ -4869,17 +5346,17 @@ private class ReduceAction91
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode8,
+                                               pannotationsnode9,
                                                null,
-                                               null,
-                                               listnode12,
-                                               listnode13,
-                                               tkwendnode14
+                                               listnode16,
+                                               listnode17,
+                                               tkwendnode18
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction92
+private class ReduceAction98
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4895,8 +5372,8 @@ private class ReduceAction92
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode13 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode17 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -4910,11 +5387,18 @@ private class ReduceAction92
                                        var listnode7 = nodearraylist7
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode14 = nodearraylist10
-                                       assert tkwendnode14 isa nullable TKwend
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var tkwendnode18 = nodearraylist10
+                                       assert tkwendnode18 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -4922,21 +5406,22 @@ private class ReduceAction92
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode8,
+                                               pannotationsnode9,
                                                null,
-                                               null,
-                                               listnode12,
-                                               listnode13,
-                                               tkwendnode14
+                                               listnode16,
+                                               listnode17,
+                                               tkwendnode18
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction93
+private class ReduceAction99
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -4946,7 +5431,7 @@ private class ReduceAction93
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
+                                       var listnode8 = new Array[Object]
                                        var listnode16 = new Array[Object]
                                        var listnode17 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
@@ -4955,22 +5440,22 @@ private class ReduceAction93
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
                                                null,
                                                null,
-                                               listnode12,
+                                               listnode13,
                                                null
                                        )
-                                       var listnode15 = nodearraylist7
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var tkwendnode18 = nodearraylist9
+                                       var tkwendnode18 = nodearraylist10
                                        assert tkwendnode18 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
@@ -4978,8 +5463,8 @@ private class ReduceAction93
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
+                                               listnode8,
+                                               pannotationsnode9,
                                                null,
                                                listnode16,
                                                listnode17,
@@ -4989,11 +5474,12 @@ private class ReduceAction93
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction94
+private class ReduceAction100
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -5004,42 +5490,40 @@ private class ReduceAction94
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
+                                       var listnode8 = new Array[Object]
                                        var listnode16 = new Array[Object]
                                        var listnode17 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
+                                       var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
+                                       var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
                                                null,
                                                null,
-                                               listnode12,
+                                               listnode13,
                                                null
                                        )
-                                       var listnode15 = nodearraylist8
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var tkwendnode18 = nodearraylist10
+                                       var tkwendnode18 = nodearraylist11
                                        assert tkwendnode18 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
+                                               listnode8,
+                                               pannotationsnode9,
                                                null,
                                                listnode16,
                                                listnode17,
@@ -5049,11 +5533,12 @@ private class ReduceAction94
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction95
+private class ReduceAction102
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -5065,21 +5550,23 @@ private class ReduceAction95
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode8 = new Array[Object]
+                                       var listnode16 = new Array[Object]
                                        var listnode17 = new Array[Object]
-                                       var listnode18 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
+                                       var pclasskindnode5 = nodearraylist4
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
+                                       var listnode7 = nodearraylist8
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
                                        var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
+                                       var listnode12 = nodearraylist9
                                        assert listnode12 isa Array[Object]
                                        listnode13 = concat(listnode13, listnode12)
                                        var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
@@ -5088,33 +5575,31 @@ private class ReduceAction95
                                                listnode13,
                                                null
                                        )
-                                       var listnode16 = nodearraylist8
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode19 = nodearraylist10
-                                       assert tkwendnode19 isa nullable TKwend
+                                       var tkwendnode18 = nodearraylist11
+                                       assert tkwendnode18 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode8,
                                                pannotationsnode9,
                                                null,
+                                               listnode16,
                                                listnode17,
-                                               listnode18,
-                                               tkwendnode19
+                                               tkwendnode18
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction96
+private class ReduceAction103
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
                                        var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
@@ -5127,8 +5612,8 @@ private class ReduceAction96
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode8 = new Array[Object]
+                                       var listnode16 = new Array[Object]
                                        var listnode17 = new Array[Object]
-                                       var listnode18 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -5137,13 +5622,13 @@ private class ReduceAction96
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist8
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
+                                       var listnode7 = nodearraylist9
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
                                        var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
+                                       var listnode12 = nodearraylist10
                                        assert listnode12 isa Array[Object]
                                        listnode13 = concat(listnode13, listnode12)
                                        var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
@@ -5152,11 +5637,8 @@ private class ReduceAction96
                                                listnode13,
                                                null
                                        )
-                                       var listnode16 = nodearraylist9
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
+                                       var tkwendnode18 = nodearraylist12
+                                       assert tkwendnode18 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -5166,20 +5648,19 @@ private class ReduceAction96
                                                listnode8,
                                                pannotationsnode9,
                                                null,
+                                               listnode16,
                                                listnode17,
-                                               listnode18,
-                                               tkwendnode19
+                                               tkwendnode18
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction97
+private class ReduceAction105
        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
@@ -5189,8 +5670,8 @@ private class ReduceAction97
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode7 = new Array[Object]
+                                       var listnode10 = new Array[Object]
                                        var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
@@ -5201,11 +5682,8 @@ private class ReduceAction97
                                        assert tclassidnode6 isa nullable TClassid
                                        var pexterncodeblocknode9 = nodearraylist6
                                        assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode10 = nodearraylist7
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode13 = nodearraylist9
-                                       assert tkwendnode13 isa nullable TKwend
+                                       var tkwendnode12 = nodearraylist8
+                                       assert tkwendnode12 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
@@ -5215,20 +5693,19 @@ private class ReduceAction97
                                                listnode7,
                                                null,
                                                pexterncodeblocknode9,
+                                               listnode10,
                                                listnode11,
-                                               listnode12,
-                                               tkwendnode13
+                                               tkwendnode12
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction98
+private class ReduceAction106
        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
@@ -5239,8 +5716,8 @@ private class ReduceAction98
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode7 = new Array[Object]
+                                       var listnode10 = new Array[Object]
                                        var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -5253,11 +5730,8 @@ private class ReduceAction98
                                        assert tclassidnode6 isa nullable TClassid
                                        var pexterncodeblocknode9 = nodearraylist7
                                        assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode10 = nodearraylist8
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode13 = nodearraylist10
-                                       assert tkwendnode13 isa nullable TKwend
+                                       var tkwendnode12 = nodearraylist9
+                                       assert tkwendnode12 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -5267,20 +5741,19 @@ private class ReduceAction98
                                                listnode7,
                                                null,
                                                pexterncodeblocknode9,
+                                               listnode10,
                                                listnode11,
-                                               listnode12,
-                                               tkwendnode13
+                                               tkwendnode12
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction99
+private class ReduceAction107
        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
@@ -5290,50 +5763,43 @@ private class ReduceAction99
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode13 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode14 = nodearraylist10
-                                       assert tkwendnode14 isa nullable TKwend
+                                       var pexterncodeblocknode9 = nodearraylist7
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var tkwendnode12 = nodearraylist9
+                                       assert tkwendnode12 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode8,
+                                               listnode7,
                                                null,
-                                               pexterncodeblocknode10,
-                                               listnode12,
-                                               listnode13,
-                                               tkwendnode14
+                                               pexterncodeblocknode9,
+                                               listnode10,
+                                               listnode11,
+                                               tkwendnode12
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction100
+private class ReduceAction108
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -5344,47 +5810,39 @@ private class ReduceAction100
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode13 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
+                                       var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
+                                       var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode14 = nodearraylist11
-                                       assert tkwendnode14 isa nullable TKwend
+                                       var pexterncodeblocknode9 = nodearraylist8
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var tkwendnode12 = nodearraylist10
+                                       assert tkwendnode12 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode8,
+                                               listnode7,
                                                null,
-                                               pexterncodeblocknode10,
-                                               listnode12,
-                                               listnode13,
-                                               tkwendnode14
+                                               pexterncodeblocknode9,
+                                               listnode10,
+                                               listnode11,
+                                               tkwendnode12
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction101
+private class ReduceAction110
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5400,51 +5858,40 @@ private class ReduceAction101
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
+                                       var pclasskindnode5 = nodearraylist4
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist7
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode15 = nodearraylist8
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var tkwendnode18 = nodearraylist10
-                                       assert tkwendnode18 isa nullable TKwend
+                                       var pexterncodeblocknode9 = nodearraylist8
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var tkwendnode12 = nodearraylist10
+                                       assert tkwendnode12 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
+                                               null,
+                                               pexterncodeblocknode9,
+                                               listnode10,
+                                               listnode11,
+                                               tkwendnode12
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction102
+private class ReduceAction111
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5461,8 +5908,8 @@ private class ReduceAction102
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -5471,25 +5918,12 @@ private class ReduceAction102
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist8
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist8
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode15 = nodearraylist9
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var tkwendnode18 = nodearraylist11
-                                       assert tkwendnode18 isa nullable TKwend
+                                       var pexterncodeblocknode9 = nodearraylist9
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var tkwendnode12 = nodearraylist11
+                                       assert tkwendnode12 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -5497,23 +5931,21 @@ private class ReduceAction102
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
+                                               null,
+                                               pexterncodeblocknode9,
+                                               listnode10,
+                                               listnode11,
+                                               tkwendnode12
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction103
+private class ReduceAction113
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -5524,8 +5956,8 @@ private class ReduceAction103
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode18 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
@@ -5537,23 +5969,10 @@ private class ReduceAction103
                                        var listnode7 = nodearraylist6
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist8
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist9
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
+                                       var pexterncodeblocknode10 = nodearraylist7
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var tkwendnode13 = nodearraylist9
+                                       assert tkwendnode13 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
@@ -5561,23 +5980,21 @@ private class ReduceAction103
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode17,
-                                               listnode18,
-                                               tkwendnode19
+                                               null,
+                                               pexterncodeblocknode10,
+                                               listnode11,
+                                               listnode12,
+                                               tkwendnode13
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction104
+private class ReduceAction114
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -5589,8 +6006,8 @@ private class ReduceAction104
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode18 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -5604,23 +6021,10 @@ private class ReduceAction104
                                        var listnode7 = nodearraylist7
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist9
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist10
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode19 = nodearraylist12
-                                       assert tkwendnode19 isa nullable TKwend
+                                       var pexterncodeblocknode10 = nodearraylist8
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var tkwendnode13 = nodearraylist10
+                                       assert tkwendnode13 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -5628,21 +6032,23 @@ private class ReduceAction104
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode17,
-                                               listnode18,
-                                               tkwendnode19
+                                               null,
+                                               pexterncodeblocknode10,
+                                               listnode11,
+                                               listnode12,
+                                               tkwendnode13
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction105
+private class ReduceAction115
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -5651,8 +6057,8 @@ private class ReduceAction105
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var listnode11 = new Array[Object]
                                        var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
@@ -5660,12 +6066,14 @@ private class ReduceAction105
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist8
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode10 = nodearraylist8
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var tkwendnode13 = nodearraylist10
                                        assert tkwendnode13 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
@@ -5673,10 +6081,10 @@ private class ReduceAction105
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode7,
-                                               null,
+                                               listnode8,
                                                null,
-                                               listnode10,
+                                               pexterncodeblocknode10,
+                                               listnode11,
                                                listnode12,
                                                tkwendnode13
                                        )
@@ -5684,11 +6092,13 @@ private class ReduceAction105
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction106
+private class ReduceAction116
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -5698,34 +6108,34 @@ private class ReduceAction106
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var listnode11 = new Array[Object]
                                        var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
+                                       var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
+                                       var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist9
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode10 = nodearraylist9
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var tkwendnode13 = nodearraylist11
                                        assert tkwendnode13 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode7,
-                                               null,
+                                               listnode8,
                                                null,
-                                               listnode10,
+                                               pexterncodeblocknode10,
+                                               listnode11,
                                                listnode12,
                                                tkwendnode13
                                        )
@@ -5733,11 +6143,13 @@ private class ReduceAction106
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction107
+private class ReduceAction118
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -5749,45 +6161,48 @@ private class ReduceAction107
                                        var nodearraylist1 = p.pop
                                        var listnode8 = new Array[Object]
                                        var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
+                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
+                                       var pclasskindnode5 = nodearraylist4
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
+                                       var listnode7 = nodearraylist8
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist9
-                                       assert tkwendnode14 isa nullable TKwend
+                                       var pexterncodeblocknode10 = nodearraylist9
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var tkwendnode13 = nodearraylist11
+                                       assert tkwendnode13 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode8,
                                                null,
-                                               null,
+                                               pexterncodeblocknode10,
                                                listnode11,
-                                               listnode13,
-                                               tkwendnode14
+                                               listnode12,
+                                               tkwendnode13
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction108
+private class ReduceAction119
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -5800,7 +6215,7 @@ private class ReduceAction108
                                        var nodearraylist1 = p.pop
                                        var listnode8 = new Array[Object]
                                        var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
+                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -5809,16 +6224,15 @@ private class ReduceAction108
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist8
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
+                                       var listnode7 = nodearraylist9
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist10
-                                       assert tkwendnode14 isa nullable TKwend
+                                       var pexterncodeblocknode10 = nodearraylist10
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var tkwendnode13 = nodearraylist12
+                                       assert tkwendnode13 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -5827,16 +6241,16 @@ private class ReduceAction108
                                                tclassidnode6,
                                                listnode8,
                                                null,
-                                               null,
+                                               pexterncodeblocknode10,
                                                listnode11,
-                                               listnode13,
-                                               tkwendnode14
+                                               listnode12,
+                                               tkwendnode13
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction109
+private class ReduceAction121
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5852,7 +6266,7 @@ private class ReduceAction109
                                        var nodearraylist1 = p.pop
                                        var listnode7 = new Array[Object]
                                        var listnode15 = new Array[Object]
-                                       var listnode17 = new Array[Object]
+                                       var listnode16 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
@@ -5871,11 +6285,10 @@ private class ReduceAction109
                                                listnode12,
                                                null
                                        )
-                                       var listnode16 = nodearraylist7
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode18 = nodearraylist9
-                                       assert tkwendnode18 isa nullable TKwend
+                                       var pexterncodeblocknode14 = nodearraylist7
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
@@ -5884,16 +6297,16 @@ private class ReduceAction109
                                                tclassidnode6,
                                                listnode7,
                                                pannotationsnode8,
-                                               null,
+                                               pexterncodeblocknode14,
                                                listnode15,
-                                               listnode17,
-                                               tkwendnode18
+                                               listnode16,
+                                               tkwendnode17
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction110
+private class ReduceAction122
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5910,7 +6323,7 @@ private class ReduceAction110
                                        var nodearraylist1 = p.pop
                                        var listnode7 = new Array[Object]
                                        var listnode15 = new Array[Object]
-                                       var listnode17 = new Array[Object]
+                                       var listnode16 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -5931,29 +6344,28 @@ private class ReduceAction110
                                                listnode12,
                                                null
                                        )
-                                       var listnode16 = nodearraylist8
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode18 = nodearraylist10
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode7,
                                                pannotationsnode8,
-                                               null,
+                                               pexterncodeblocknode14,
                                                listnode15,
-                                               listnode17,
-                                               tkwendnode18
+                                               listnode16,
+                                               tkwendnode17
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction111
+private class ReduceAction123
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5968,53 +6380,49 @@ private class ReduceAction111
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var listnode15 = new Array[Object]
                                        var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist7
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
                                                null,
                                                null,
-                                               listnode13,
+                                               listnode12,
                                                null
                                        )
-                                       var listnode17 = nodearraylist8
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist10
-                                       assert tkwendnode19 isa nullable TKwend
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode15,
                                                listnode16,
-                                               listnode18,
-                                               tkwendnode19
+                                               tkwendnode17
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction112
+private class ReduceAction124
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6030,59 +6438,55 @@ private class ReduceAction112
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var listnode15 = new Array[Object]
                                        var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
+                                       var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
+                                       var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
                                                null,
                                                null,
-                                               listnode13,
+                                               listnode12,
                                                null
                                        )
-                                       var listnode17 = nodearraylist9
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var tkwendnode17 = nodearraylist11
+                                       assert tkwendnode17 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode15,
                                                listnode16,
-                                               listnode18,
-                                               tkwendnode19
+                                               tkwendnode17
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction113
+private class ReduceAction126
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -6093,45 +6497,56 @@ private class ReduceAction113
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
+                                       var listnode15 = new Array[Object]
+                                       var listnode16 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
+                                       var pclasskindnode5 = nodearraylist4
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist6
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist7
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist8
                                        assert listnode11 isa Array[Object]
                                        listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist9
-                                       assert tkwendnode13 isa nullable TKwend
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var tkwendnode17 = nodearraylist11
+                                       assert tkwendnode17 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode10,
-                                               listnode12,
-                                               tkwendnode13
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode15,
+                                               listnode16,
+                                               tkwendnode17
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction114
+private class ReduceAction127
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -6143,8 +6558,8 @@ private class ReduceAction114
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
+                                       var listnode15 = new Array[Object]
+                                       var listnode16 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -6153,15 +6568,22 @@ private class ReduceAction114
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist8
                                        assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist7
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist8
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist9
                                        assert listnode11 isa Array[Object]
                                        listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist10
-                                       assert tkwendnode13 isa nullable TKwend
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var pexterncodeblocknode14 = nodearraylist10
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var tkwendnode17 = nodearraylist12
+                                       assert tkwendnode17 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -6169,17 +6591,17 @@ private class ReduceAction114
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode10,
-                                               listnode12,
-                                               tkwendnode13
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode15,
+                                               listnode16,
+                                               tkwendnode17
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction115
+private class ReduceAction129
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6195,8 +6617,8 @@ private class ReduceAction115
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode17 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
@@ -6208,13 +6630,20 @@ private class ReduceAction115
                                        var listnode7 = nodearraylist6
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode12 = nodearraylist8
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist7
                                        assert listnode12 isa Array[Object]
                                        listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist10
-                                       assert tkwendnode14 isa nullable TKwend
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var pexterncodeblocknode15 = nodearraylist8
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var tkwendnode18 = nodearraylist10
+                                       assert tkwendnode18 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
@@ -6222,17 +6651,17 @@ private class ReduceAction115
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode16,
+                                               listnode17,
+                                               tkwendnode18
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction116
+private class ReduceAction130
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6249,8 +6678,8 @@ private class ReduceAction116
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode17 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -6264,13 +6693,20 @@ private class ReduceAction116
                                        var listnode7 = nodearraylist7
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode12 = nodearraylist9
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist8
                                        assert listnode12 isa Array[Object]
                                        listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist11
-                                       assert tkwendnode14 isa nullable TKwend
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var pexterncodeblocknode15 = nodearraylist9
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var tkwendnode18 = nodearraylist11
+                                       assert tkwendnode18 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -6278,21 +6714,22 @@ private class ReduceAction116
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode16,
+                                               listnode17,
+                                               tkwendnode18
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction117
+private class ReduceAction131
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -6303,8 +6740,8 @@ private class ReduceAction117
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var listnode16 = new Array[Object]
                                        var listnode17 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
@@ -6312,24 +6749,24 @@ private class ReduceAction117
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
                                                null,
-                                               listnode12,
+                                               null,
+                                               listnode13,
                                                null
                                        )
-                                       var pexterncodeblocknode14 = nodearraylist7
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist8
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode18 = nodearraylist10
+                                       var pexterncodeblocknode15 = nodearraylist9
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var tkwendnode18 = nodearraylist11
                                        assert tkwendnode18 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
@@ -6337,10 +6774,10 @@ private class ReduceAction117
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode15,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode16,
                                                listnode17,
                                                tkwendnode18
                                        )
@@ -6348,11 +6785,12 @@ private class ReduceAction117
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction118
+private class ReduceAction132
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
                                        var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
@@ -6364,46 +6802,44 @@ private class ReduceAction118
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var listnode16 = new Array[Object]
                                        var listnode17 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
+                                       var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
+                                       var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
                                                null,
                                                null,
-                                               listnode12,
+                                               listnode13,
                                                null
                                        )
-                                       var pexterncodeblocknode14 = nodearraylist8
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist9
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode18 = nodearraylist11
+                                       var pexterncodeblocknode15 = nodearraylist10
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var tkwendnode18 = nodearraylist12
                                        assert tkwendnode18 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode15,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode16,
                                                listnode17,
                                                tkwendnode18
                                        )
@@ -6411,11 +6847,12 @@ private class ReduceAction118
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction119
+private class ReduceAction134
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
                                        var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
@@ -6429,20 +6866,22 @@ private class ReduceAction119
                                        var nodearraylist1 = p.pop
                                        var listnode8 = new Array[Object]
                                        var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
+                                       var listnode17 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
+                                       var pclasskindnode5 = nodearraylist4
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
+                                       var listnode7 = nodearraylist8
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
                                        var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
+                                       var listnode12 = nodearraylist9
                                        assert listnode12 isa Array[Object]
                                        listnode13 = concat(listnode13, listnode12)
                                        var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
@@ -6451,16 +6890,13 @@ private class ReduceAction119
                                                listnode13,
                                                null
                                        )
-                                       var pexterncodeblocknode15 = nodearraylist8
+                                       var pexterncodeblocknode15 = nodearraylist10
                                        assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode17 = nodearraylist9
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
+                                       var tkwendnode18 = nodearraylist12
+                                       assert tkwendnode18 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
@@ -6468,18 +6904,19 @@ private class ReduceAction119
                                                pannotationsnode9,
                                                pexterncodeblocknode15,
                                                listnode16,
-                                               listnode18,
-                                               tkwendnode19
+                                               listnode17,
+                                               tkwendnode18
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction120
+private class ReduceAction135
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
                                        var nodearraylist12 = p.pop
                                        var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
@@ -6494,7 +6931,7 @@ private class ReduceAction120
                                        var nodearraylist1 = p.pop
                                        var listnode8 = new Array[Object]
                                        var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
+                                       var listnode17 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -6503,13 +6940,13 @@ private class ReduceAction120
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist8
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
+                                       var listnode7 = nodearraylist9
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
                                        var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
+                                       var listnode12 = nodearraylist10
                                        assert listnode12 isa Array[Object]
                                        listnode13 = concat(listnode13, listnode12)
                                        var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
@@ -6518,13 +6955,10 @@ private class ReduceAction120
                                                listnode13,
                                                null
                                        )
-                                       var pexterncodeblocknode15 = nodearraylist9
+                                       var pexterncodeblocknode15 = nodearraylist11
                                        assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode17 = nodearraylist10
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist12
-                                       assert tkwendnode19 isa nullable TKwend
+                                       var tkwendnode18 = nodearraylist13
+                                       assert tkwendnode18 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -6535,19 +6969,18 @@ private class ReduceAction120
                                                pannotationsnode9,
                                                pexterncodeblocknode15,
                                                listnode16,
-                                               listnode18,
-                                               tkwendnode19
+                                               listnode17,
+                                               tkwendnode18
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction121
+private class ReduceAction137
        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
@@ -6558,7 +6991,7 @@ private class ReduceAction121
                                        var nodearraylist1 = p.pop
                                        var listnode7 = new Array[Object]
                                        var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
+                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
@@ -6570,11 +7003,8 @@ private class ReduceAction121
                                        var listnode10 = nodearraylist6
                                        assert listnode10 isa Array[Object]
                                        listnode11 = concat(listnode11, listnode10)
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist9
-                                       assert tkwendnode14 isa nullable TKwend
+                                       var tkwendnode13 = nodearraylist8
+                                       assert tkwendnode13 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
@@ -6585,19 +7015,18 @@ private class ReduceAction121
                                                null,
                                                null,
                                                listnode11,
-                                               listnode13,
-                                               tkwendnode14
+                                               listnode12,
+                                               tkwendnode13
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction122
+private class ReduceAction138
        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
@@ -6609,7 +7038,7 @@ private class ReduceAction122
                                        var nodearraylist1 = p.pop
                                        var listnode7 = new Array[Object]
                                        var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
+                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -6623,11 +7052,8 @@ private class ReduceAction122
                                        var listnode10 = nodearraylist7
                                        assert listnode10 isa Array[Object]
                                        listnode11 = concat(listnode11, listnode10)
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist10
-                                       assert tkwendnode14 isa nullable TKwend
+                                       var tkwendnode13 = nodearraylist9
+                                       assert tkwendnode13 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -6638,19 +7064,18 @@ private class ReduceAction122
                                                null,
                                                null,
                                                listnode11,
-                                               listnode13,
-                                               tkwendnode14
+                                               listnode12,
+                                               tkwendnode13
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction123
+private class ReduceAction139
        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
@@ -6660,51 +7085,44 @@ private class ReduceAction123
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var listnode11 = new Array[Object]
                                        var listnode12 = new Array[Object]
-                                       var listnode14 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var listnode13 = nodearraylist8
-                                       assert listnode13 isa Array[Object]
-                                       listnode14 = concat(listnode14, listnode13)
-                                       var tkwendnode15 = nodearraylist10
-                                       assert tkwendnode15 isa nullable TKwend
+                                       var listnode10 = nodearraylist7
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var tkwendnode13 = nodearraylist9
+                                       assert tkwendnode13 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode8,
+                                               listnode7,
                                                null,
                                                null,
+                                               listnode11,
                                                listnode12,
-                                               listnode14,
-                                               tkwendnode15
+                                               tkwendnode13
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction124
+private class ReduceAction140
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -6715,48 +7133,40 @@ private class ReduceAction124
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var listnode11 = new Array[Object]
                                        var listnode12 = new Array[Object]
-                                       var listnode14 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
+                                       var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
+                                       var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var listnode13 = nodearraylist9
-                                       assert listnode13 isa Array[Object]
-                                       listnode14 = concat(listnode14, listnode13)
-                                       var tkwendnode15 = nodearraylist11
-                                       assert tkwendnode15 isa nullable TKwend
+                                       var listnode10 = nodearraylist8
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var tkwendnode13 = nodearraylist10
+                                       assert tkwendnode13 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode8,
+                                               listnode7,
                                                null,
                                                null,
+                                               listnode11,
                                                listnode12,
-                                               listnode14,
-                                               tkwendnode15
+                                               tkwendnode13
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction125
+private class ReduceAction142
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6772,52 +7182,41 @@ private class ReduceAction125
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
+                                       var pclasskindnode5 = nodearraylist4
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                       var listnode10 = nodearraylist8
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var tkwendnode13 = nodearraylist10
+                                       assert tkwendnode13 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
                                                null,
                                                null,
+                                               listnode11,
                                                listnode12,
-                                               null
-                                       )
-                                       var listnode15 = nodearraylist7
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var listnode17 = nodearraylist8
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist10
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
+                                               tkwendnode13
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction126
+private class ReduceAction143
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6834,8 +7233,8 @@ private class ReduceAction126
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -6844,26 +7243,13 @@ private class ReduceAction126
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist8
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode15 = nodearraylist8
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var listnode17 = nodearraylist9
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
+                                       var listnode10 = nodearraylist9
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var tkwendnode13 = nodearraylist11
+                                       assert tkwendnode13 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -6871,23 +7257,21 @@ private class ReduceAction126
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode7,
-                                               pannotationsnode8,
                                                null,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
+                                               null,
+                                               listnode11,
+                                               listnode12,
+                                               tkwendnode13
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction127
+private class ReduceAction145
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -6898,8 +7282,8 @@ private class ReduceAction127
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode19 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var listnode13 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
@@ -6911,24 +7295,11 @@ private class ReduceAction127
                                        var listnode7 = nodearraylist6
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist8
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var listnode18 = nodearraylist9
-                                       assert listnode18 isa Array[Object]
-                                       listnode19 = concat(listnode19, listnode18)
-                                       var tkwendnode20 = nodearraylist11
-                                       assert tkwendnode20 isa nullable TKwend
+                                       var listnode11 = nodearraylist7
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var tkwendnode14 = nodearraylist9
+                                       assert tkwendnode14 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
@@ -6936,23 +7307,21 @@ private class ReduceAction127
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode8,
-                                               pannotationsnode9,
                                                null,
-                                               listnode17,
-                                               listnode19,
-                                               tkwendnode20
+                                               null,
+                                               listnode12,
+                                               listnode13,
+                                               tkwendnode14
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction128
+private class ReduceAction146
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -6964,8 +7333,8 @@ private class ReduceAction128
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode19 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var listnode13 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -6979,24 +7348,11 @@ private class ReduceAction128
                                        var listnode7 = nodearraylist7
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist9
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var listnode18 = nodearraylist10
-                                       assert listnode18 isa Array[Object]
-                                       listnode19 = concat(listnode19, listnode18)
-                                       var tkwendnode20 = nodearraylist12
-                                       assert tkwendnode20 isa nullable TKwend
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var tkwendnode14 = nodearraylist10
+                                       assert tkwendnode14 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -7004,17 +7360,17 @@ private class ReduceAction128
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode8,
-                                               pannotationsnode9,
                                                null,
-                                               listnode17,
-                                               listnode19,
-                                               tkwendnode20
+                                               null,
+                                               listnode12,
+                                               listnode13,
+                                               tkwendnode14
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction129
+private class ReduceAction147
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7029,8 +7385,8 @@ private class ReduceAction129
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
                                        var listnode13 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
@@ -7038,16 +7394,14 @@ private class ReduceAction129
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist6
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode10 = nodearraylist7
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
                                        var tkwendnode14 = nodearraylist10
                                        assert tkwendnode14 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
@@ -7056,10 +7410,10 @@ private class ReduceAction129
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode7,
+                                               listnode8,
                                                null,
-                                               pexterncodeblocknode9,
-                                               listnode11,
+                                               null,
+                                               listnode12,
                                                listnode13,
                                                tkwendnode14
                                        )
@@ -7067,7 +7421,7 @@ private class ReduceAction129
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction130
+private class ReduceAction148
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7083,39 +7437,35 @@ private class ReduceAction130
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
                                        var listnode13 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
+                                       var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
+                                       var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist7
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode10 = nodearraylist8
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode11 = nodearraylist9
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
                                        var tkwendnode14 = nodearraylist11
                                        assert tkwendnode14 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode7,
+                                               listnode8,
                                                null,
-                                               pexterncodeblocknode9,
-                                               listnode11,
+                                               null,
+                                               listnode12,
                                                listnode13,
                                                tkwendnode14
                                        )
@@ -7123,7 +7473,7 @@ private class ReduceAction130
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction131
+private class ReduceAction150
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7141,46 +7491,43 @@ private class ReduceAction131
                                        var nodearraylist1 = p.pop
                                        var listnode8 = new Array[Object]
                                        var listnode12 = new Array[Object]
-                                       var listnode14 = new Array[Object]
+                                       var listnode13 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
+                                       var pclasskindnode5 = nodearraylist4
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
+                                       var listnode7 = nodearraylist8
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist8
+                                       var listnode11 = nodearraylist9
                                        assert listnode11 isa Array[Object]
                                        listnode12 = concat(listnode12, listnode11)
-                                       var listnode13 = nodearraylist9
-                                       assert listnode13 isa Array[Object]
-                                       listnode14 = concat(listnode14, listnode13)
-                                       var tkwendnode15 = nodearraylist11
-                                       assert tkwendnode15 isa nullable TKwend
+                                       var tkwendnode14 = nodearraylist11
+                                       assert tkwendnode14 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
                                                listnode8,
                                                null,
-                                               pexterncodeblocknode10,
+                                               null,
                                                listnode12,
-                                               listnode14,
-                                               tkwendnode15
+                                               listnode13,
+                                               tkwendnode14
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction132
+private class ReduceAction151
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7199,7 +7546,7 @@ private class ReduceAction132
                                        var nodearraylist1 = p.pop
                                        var listnode8 = new Array[Object]
                                        var listnode12 = new Array[Object]
-                                       var listnode14 = new Array[Object]
+                                       var listnode13 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -7208,21 +7555,16 @@ private class ReduceAction132
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist8
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
+                                       var listnode7 = nodearraylist9
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist9
+                                       var listnode11 = nodearraylist10
                                        assert listnode11 isa Array[Object]
                                        listnode12 = concat(listnode12, listnode11)
-                                       var listnode13 = nodearraylist10
-                                       assert listnode13 isa Array[Object]
-                                       listnode14 = concat(listnode14, listnode13)
-                                       var tkwendnode15 = nodearraylist12
-                                       assert tkwendnode15 isa nullable TKwend
+                                       var tkwendnode14 = nodearraylist12
+                                       assert tkwendnode14 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -7231,22 +7573,20 @@ private class ReduceAction132
                                                tclassidnode6,
                                                listnode8,
                                                null,
-                                               pexterncodeblocknode10,
+                                               null,
                                                listnode12,
-                                               listnode14,
-                                               tkwendnode15
+                                               listnode13,
+                                               tkwendnode14
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction133
+private class ReduceAction153
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -7258,7 +7598,7 @@ private class ReduceAction133
                                        var nodearraylist1 = p.pop
                                        var listnode7 = new Array[Object]
                                        var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
+                                       var listnode17 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
@@ -7277,16 +7617,11 @@ private class ReduceAction133
                                                listnode12,
                                                null
                                        )
-                                       var pexterncodeblocknode14 = nodearraylist7
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode15 = nodearraylist8
+                                       var listnode15 = nodearraylist7
                                        assert listnode15 isa Array[Object]
                                        listnode16 = concat(listnode16, listnode15)
-                                       var listnode17 = nodearraylist9
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
+                                       var tkwendnode18 = nodearraylist9
+                                       assert tkwendnode18 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
@@ -7295,22 +7630,20 @@ private class ReduceAction133
                                                tclassidnode6,
                                                listnode7,
                                                pannotationsnode8,
-                                               pexterncodeblocknode14,
+                                               null,
                                                listnode16,
-                                               listnode18,
-                                               tkwendnode19
+                                               listnode17,
+                                               tkwendnode18
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction134
+private class ReduceAction154
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -7323,7 +7656,7 @@ private class ReduceAction134
                                        var nodearraylist1 = p.pop
                                        var listnode7 = new Array[Object]
                                        var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
+                                       var listnode17 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -7344,16 +7677,11 @@ private class ReduceAction134
                                                listnode12,
                                                null
                                        )
-                                       var pexterncodeblocknode14 = nodearraylist8
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode15 = nodearraylist9
+                                       var listnode15 = nodearraylist8
                                        assert listnode15 isa Array[Object]
                                        listnode16 = concat(listnode16, listnode15)
-                                       var listnode17 = nodearraylist10
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist12
-                                       assert tkwendnode19 isa nullable TKwend
+                                       var tkwendnode18 = nodearraylist10
+                                       assert tkwendnode18 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -7362,22 +7690,20 @@ private class ReduceAction134
                                                tclassidnode6,
                                                listnode7,
                                                pannotationsnode8,
-                                               pexterncodeblocknode14,
+                                               null,
                                                listnode16,
-                                               listnode18,
-                                               tkwendnode19
+                                               listnode17,
+                                               tkwendnode18
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction135
+private class ReduceAction155
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -7388,64 +7714,54 @@ private class ReduceAction135
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
                                        var listnode17 = new Array[Object]
-                                       var listnode19 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
+                                       var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist7
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
                                                null,
                                                null,
-                                               listnode13,
+                                               listnode12,
                                                null
                                        )
-                                       var pexterncodeblocknode15 = nodearraylist8
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist9
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var listnode18 = nodearraylist10
-                                       assert listnode18 isa Array[Object]
-                                       listnode19 = concat(listnode19, listnode18)
-                                       var tkwendnode20 = nodearraylist12
-                                       assert tkwendnode20 isa nullable TKwend
+                                       var listnode15 = nodearraylist8
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var tkwendnode18 = nodearraylist10
+                                       assert tkwendnode18 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               null,
+                                               listnode16,
                                                listnode17,
-                                               listnode19,
-                                               tkwendnode20
+                                               tkwendnode18
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction136
+private class ReduceAction156
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
                                        var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
@@ -7457,94 +7773,7716 @@ private class ReduceAction136
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
                                        var listnode17 = new Array[Object]
-                                       var listnode19 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
+                                       var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
+                                       var pclasskindnode5 = nodearraylist3
                                        assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
+                                       var tclassidnode6 = nodearraylist7
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
                                                null,
                                                null,
-                                               listnode13,
+                                               listnode12,
                                                null
                                        )
-                                       var pexterncodeblocknode15 = nodearraylist9
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist10
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var listnode18 = nodearraylist11
-                                       assert listnode18 isa Array[Object]
-                                       listnode19 = concat(listnode19, listnode18)
-                                       var tkwendnode20 = nodearraylist13
-                                       assert tkwendnode20 isa nullable TKwend
+                                       var listnode15 = nodearraylist9
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var tkwendnode18 = nodearraylist11
+                                       assert tkwendnode18 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               null,
+                                               listnode16,
                                                listnode17,
-                                               listnode19,
-                                               tkwendnode20
+                                               tkwendnode18
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction137
+private class ReduceAction158
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwclassnode2 = nodearraylist1
-                                       assert tkwclassnode2 isa nullable TKwclass
-                                       var pclasskindnode1: nullable AConcreteClasskind = new AConcreteClasskind.init_aconcreteclasskind(
-                                               tkwclassnode2
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
                                        )
-                                       node_list = pclasskindnode1
+                                       var listnode15 = nodearraylist9
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var tkwendnode18 = nodearraylist11
+                                       assert tkwendnode18 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               null,
+                                               listnode16,
+                                               listnode17,
+                                               tkwendnode18
+                                       )
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction138
+private class ReduceAction159
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwabstractnode2 = nodearraylist1
-                                       assert tkwabstractnode2 isa nullable TKwabstract
-                                       var tkwclassnode3 = nodearraylist2
-                                       assert tkwclassnode3 isa nullable TKwclass
-                                       var pclasskindnode1: nullable AAbstractClasskind = new AAbstractClasskind.init_aabstractclasskind(
-                                               tkwabstractnode2,
-                                               tkwclassnode3
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist9
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
                                        )
-                                       node_list = pclasskindnode1
+                                       var listnode15 = nodearraylist10
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var tkwendnode18 = nodearraylist12
+                                       assert tkwendnode18 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               null,
+                                               listnode16,
+                                               listnode17,
+                                               tkwendnode18
+                                       )
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction139
+private class ReduceAction161
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist6
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist7
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var listnode16 = nodearraylist8
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode19 = nodearraylist10
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               null,
+                                               listnode17,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction162
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var listnode16 = nodearraylist9
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode19 = nodearraylist11
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               null,
+                                               listnode17,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction163
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var listnode16 = nodearraylist9
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode19 = nodearraylist11
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               null,
+                                               listnode17,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction164
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var listnode16 = nodearraylist10
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode19 = nodearraylist12
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               null,
+                                               listnode17,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction166
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var listnode16 = nodearraylist10
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode19 = nodearraylist12
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               null,
+                                               listnode17,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction167
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist9
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist10
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var listnode16 = nodearraylist11
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode19 = nodearraylist13
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               null,
+                                               listnode17,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction169
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pexterncodeblocknode9 = nodearraylist6
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var listnode10 = nodearraylist7
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var tkwendnode13 = nodearraylist9
+                                       assert tkwendnode13 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               pexterncodeblocknode9,
+                                               listnode11,
+                                               listnode12,
+                                               tkwendnode13
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction170
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pexterncodeblocknode9 = nodearraylist7
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var listnode10 = nodearraylist8
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var tkwendnode13 = nodearraylist10
+                                       assert tkwendnode13 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               pexterncodeblocknode9,
+                                               listnode11,
+                                               listnode12,
+                                               tkwendnode13
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction171
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pexterncodeblocknode9 = nodearraylist7
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var listnode10 = nodearraylist8
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var tkwendnode13 = nodearraylist10
+                                       assert tkwendnode13 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               pexterncodeblocknode9,
+                                               listnode11,
+                                               listnode12,
+                                               tkwendnode13
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction172
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pexterncodeblocknode9 = nodearraylist8
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var listnode10 = nodearraylist9
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var tkwendnode13 = nodearraylist11
+                                       assert tkwendnode13 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               pexterncodeblocknode9,
+                                               listnode11,
+                                               listnode12,
+                                               tkwendnode13
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction174
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pexterncodeblocknode9 = nodearraylist8
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var listnode10 = nodearraylist9
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var tkwendnode13 = nodearraylist11
+                                       assert tkwendnode13 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               pexterncodeblocknode9,
+                                               listnode11,
+                                               listnode12,
+                                               tkwendnode13
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction175
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pexterncodeblocknode9 = nodearraylist9
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var listnode10 = nodearraylist10
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var tkwendnode13 = nodearraylist12
+                                       assert tkwendnode13 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               pexterncodeblocknode9,
+                                               listnode11,
+                                               listnode12,
+                                               tkwendnode13
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction177
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist6
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode10 = nodearraylist7
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var tkwendnode14 = nodearraylist10
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               pexterncodeblocknode10,
+                                               listnode12,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction178
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode10 = nodearraylist8
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var listnode11 = nodearraylist9
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var tkwendnode14 = nodearraylist11
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               pexterncodeblocknode10,
+                                               listnode12,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction179
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode10 = nodearraylist8
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var listnode11 = nodearraylist9
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var tkwendnode14 = nodearraylist11
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               pexterncodeblocknode10,
+                                               listnode12,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction180
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode10 = nodearraylist9
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var listnode11 = nodearraylist10
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var tkwendnode14 = nodearraylist12
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               pexterncodeblocknode10,
+                                               listnode12,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction182
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode10 = nodearraylist9
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var listnode11 = nodearraylist10
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var tkwendnode14 = nodearraylist12
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               pexterncodeblocknode10,
+                                               listnode12,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction183
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist9
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode10 = nodearraylist10
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var listnode11 = nodearraylist11
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var tkwendnode14 = nodearraylist13
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               pexterncodeblocknode10,
+                                               listnode12,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction185
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist6
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var pexterncodeblocknode14 = nodearraylist7
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var listnode15 = nodearraylist8
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var tkwendnode18 = nodearraylist10
+                                       assert tkwendnode18 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode16,
+                                               listnode17,
+                                               tkwendnode18
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction186
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist7
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var listnode15 = nodearraylist9
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var tkwendnode18 = nodearraylist11
+                                       assert tkwendnode18 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode16,
+                                               listnode17,
+                                               tkwendnode18
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction187
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist7
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var listnode15 = nodearraylist9
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var tkwendnode18 = nodearraylist11
+                                       assert tkwendnode18 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode16,
+                                               listnode17,
+                                               tkwendnode18
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction188
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var listnode15 = nodearraylist10
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var tkwendnode18 = nodearraylist12
+                                       assert tkwendnode18 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode16,
+                                               listnode17,
+                                               tkwendnode18
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction190
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var listnode15 = nodearraylist10
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var tkwendnode18 = nodearraylist12
+                                       assert tkwendnode18 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode16,
+                                               listnode17,
+                                               tkwendnode18
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction191
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist9
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var pexterncodeblocknode14 = nodearraylist10
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var listnode15 = nodearraylist11
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var tkwendnode18 = nodearraylist13
+                                       assert tkwendnode18 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode16,
+                                               listnode17,
+                                               tkwendnode18
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction193
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist6
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist7
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var pexterncodeblocknode15 = nodearraylist8
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var listnode16 = nodearraylist9
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode19 = nodearraylist11
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode17,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction194
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var pexterncodeblocknode15 = nodearraylist9
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var listnode16 = nodearraylist10
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode19 = nodearraylist12
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode17,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction195
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var pexterncodeblocknode15 = nodearraylist9
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var listnode16 = nodearraylist10
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode19 = nodearraylist12
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode17,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction196
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var pexterncodeblocknode15 = nodearraylist10
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var listnode16 = nodearraylist11
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode19 = nodearraylist13
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode17,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction198
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var pexterncodeblocknode15 = nodearraylist10
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var listnode16 = nodearraylist11
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode19 = nodearraylist13
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode17,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction199
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist14 = p.pop
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist9
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist10
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var pexterncodeblocknode15 = nodearraylist11
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var listnode16 = nodearraylist12
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode19 = nodearraylist14
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode17,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction201
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode11 = nodearraylist6
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var tkwendnode13 = nodearraylist8
+                                       assert tkwendnode13 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               null,
+                                               listnode10,
+                                               listnode12,
+                                               tkwendnode13
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction202
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode11 = nodearraylist7
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var tkwendnode13 = nodearraylist9
+                                       assert tkwendnode13 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               null,
+                                               listnode10,
+                                               listnode12,
+                                               tkwendnode13
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction203
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode11 = nodearraylist7
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var tkwendnode13 = nodearraylist9
+                                       assert tkwendnode13 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               null,
+                                               listnode10,
+                                               listnode12,
+                                               tkwendnode13
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction204
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       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,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               null,
+                                               listnode10,
+                                               listnode12,
+                                               tkwendnode13
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction206
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var tkwendnode13 = nodearraylist10
+                                       assert tkwendnode13 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               null,
+                                               listnode10,
+                                               listnode12,
+                                               tkwendnode13
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction207
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       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,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               null,
+                                               listnode10,
+                                               listnode12,
+                                               tkwendnode13
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction209
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist6
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode12 = nodearraylist7
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist9
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               null,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction210
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist10
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               null,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction211
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist10
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               null,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction212
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist11
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               null,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction214
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist11
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               null,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction215
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist9
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode12 = nodearraylist10
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist12
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               null,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction217
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode15 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist6
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var listnode16 = nodearraylist7
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode18 = nodearraylist9
+                                       assert tkwendnode18 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               null,
+                                               listnode15,
+                                               listnode17,
+                                               tkwendnode18
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction218
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode15 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist7
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var listnode16 = nodearraylist8
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode18 = nodearraylist10
+                                       assert tkwendnode18 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               null,
+                                               listnode15,
+                                               listnode17,
+                                               tkwendnode18
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction219
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode15 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist7
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var listnode16 = nodearraylist8
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode18 = nodearraylist10
+                                       assert tkwendnode18 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               null,
+                                               listnode15,
+                                               listnode17,
+                                               tkwendnode18
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction220
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode15 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var listnode16 = nodearraylist9
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode18 = nodearraylist11
+                                       assert tkwendnode18 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               null,
+                                               listnode15,
+                                               listnode17,
+                                               tkwendnode18
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction222
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode15 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var listnode16 = nodearraylist9
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode18 = nodearraylist11
+                                       assert tkwendnode18 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               null,
+                                               listnode15,
+                                               listnode17,
+                                               tkwendnode18
+                                       )
+                                       node_list = pclassdefnode1
+                                       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 nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode15 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist9
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var listnode16 = nodearraylist10
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode18 = nodearraylist12
+                                       assert tkwendnode18 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               null,
+                                               listnode15,
+                                               listnode17,
+                                               tkwendnode18
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction225
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist6
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist7
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var listnode17 = nodearraylist8
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist10
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               null,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction226
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var listnode17 = nodearraylist9
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist11
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               null,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction227
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var listnode17 = nodearraylist9
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist11
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               null,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction228
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var listnode17 = nodearraylist10
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist12
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               null,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction230
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var listnode17 = nodearraylist10
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist12
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               null,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       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 nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist9
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist10
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var listnode17 = nodearraylist11
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist13
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               null,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction233
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pexterncodeblocknode9 = nodearraylist6
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var listnode11 = nodearraylist7
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var tkwendnode13 = nodearraylist9
+                                       assert tkwendnode13 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               pexterncodeblocknode9,
+                                               listnode10,
+                                               listnode12,
+                                               tkwendnode13
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction234
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pexterncodeblocknode9 = nodearraylist7
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var tkwendnode13 = nodearraylist10
+                                       assert tkwendnode13 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               pexterncodeblocknode9,
+                                               listnode10,
+                                               listnode12,
+                                               tkwendnode13
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction235
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pexterncodeblocknode9 = nodearraylist7
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var tkwendnode13 = nodearraylist10
+                                       assert tkwendnode13 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               pexterncodeblocknode9,
+                                               listnode10,
+                                               listnode12,
+                                               tkwendnode13
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction236
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pexterncodeblocknode9 = nodearraylist8
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       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,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               pexterncodeblocknode9,
+                                               listnode10,
+                                               listnode12,
+                                               tkwendnode13
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction238
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pexterncodeblocknode9 = nodearraylist8
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       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,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               pexterncodeblocknode9,
+                                               listnode10,
+                                               listnode12,
+                                               tkwendnode13
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction239
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pexterncodeblocknode9 = nodearraylist9
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var listnode11 = nodearraylist10
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var tkwendnode13 = nodearraylist12
+                                       assert tkwendnode13 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               pexterncodeblocknode9,
+                                               listnode10,
+                                               listnode12,
+                                               tkwendnode13
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction241
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist6
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode10 = nodearraylist7
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist10
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               pexterncodeblocknode10,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction242
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode10 = nodearraylist8
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist11
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               pexterncodeblocknode10,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction243
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode10 = nodearraylist8
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist11
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               pexterncodeblocknode10,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction244
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode10 = nodearraylist9
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var listnode12 = nodearraylist10
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist12
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               pexterncodeblocknode10,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction246
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode10 = nodearraylist9
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var listnode12 = nodearraylist10
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist12
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               pexterncodeblocknode10,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction247
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist9
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode10 = nodearraylist10
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var listnode12 = nodearraylist11
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist13
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               pexterncodeblocknode10,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction249
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode15 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist6
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var pexterncodeblocknode14 = nodearraylist7
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var listnode16 = nodearraylist8
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode18 = nodearraylist10
+                                       assert tkwendnode18 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode15,
+                                               listnode17,
+                                               tkwendnode18
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction250
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode15 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist7
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var listnode16 = nodearraylist9
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode18 = nodearraylist11
+                                       assert tkwendnode18 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode15,
+                                               listnode17,
+                                               tkwendnode18
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction251
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode15 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist7
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var listnode16 = nodearraylist9
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode18 = nodearraylist11
+                                       assert tkwendnode18 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode15,
+                                               listnode17,
+                                               tkwendnode18
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction252
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode15 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var listnode16 = nodearraylist10
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode18 = nodearraylist12
+                                       assert tkwendnode18 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode15,
+                                               listnode17,
+                                               tkwendnode18
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction254
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode15 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var listnode16 = nodearraylist10
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode18 = nodearraylist12
+                                       assert tkwendnode18 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode15,
+                                               listnode17,
+                                               tkwendnode18
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction255
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode15 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist9
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var pexterncodeblocknode14 = nodearraylist10
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var listnode16 = nodearraylist11
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var tkwendnode18 = nodearraylist13
+                                       assert tkwendnode18 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode15,
+                                               listnode17,
+                                               tkwendnode18
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction257
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist6
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist7
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var pexterncodeblocknode15 = nodearraylist8
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var listnode17 = nodearraylist9
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist11
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction258
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var pexterncodeblocknode15 = nodearraylist9
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var listnode17 = nodearraylist10
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist12
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction259
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var pexterncodeblocknode15 = nodearraylist9
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var listnode17 = nodearraylist10
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist12
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction260
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var pexterncodeblocknode15 = nodearraylist10
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var listnode17 = nodearraylist11
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist13
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction262
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var pexterncodeblocknode15 = nodearraylist10
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var listnode17 = nodearraylist11
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist13
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction263
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist14 = p.pop
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist9
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist10
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var pexterncodeblocknode15 = nodearraylist11
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var listnode17 = nodearraylist12
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist14
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction265
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode10 = nodearraylist6
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var listnode12 = nodearraylist7
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist9
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               null,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction266
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode10 = nodearraylist7
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist10
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               null,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction267
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode10 = nodearraylist7
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist10
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               null,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction268
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode10 = nodearraylist8
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist11
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               null,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction270
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode10 = nodearraylist8
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist11
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               null,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction271
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode10 = nodearraylist9
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var listnode12 = nodearraylist10
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist12
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               null,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction273
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var listnode14 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist6
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode11 = nodearraylist7
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var listnode13 = nodearraylist8
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist10
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               null,
+                                               listnode12,
+                                               listnode14,
+                                               tkwendnode15
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction274
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var listnode14 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var listnode13 = nodearraylist9
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist11
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               null,
+                                               listnode12,
+                                               listnode14,
+                                               tkwendnode15
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction275
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var listnode14 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var listnode13 = nodearraylist9
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist11
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               null,
+                                               listnode12,
+                                               listnode14,
+                                               tkwendnode15
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction276
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var listnode14 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode11 = nodearraylist9
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var listnode13 = nodearraylist10
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist12
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               null,
+                                               listnode12,
+                                               listnode14,
+                                               tkwendnode15
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction278
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var listnode14 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode11 = nodearraylist9
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var listnode13 = nodearraylist10
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist12
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               null,
+                                               listnode12,
+                                               listnode14,
+                                               tkwendnode15
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction279
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var listnode14 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist9
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode11 = nodearraylist10
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var listnode13 = nodearraylist11
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist13
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               null,
+                                               listnode12,
+                                               listnode14,
+                                               tkwendnode15
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction281
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist6
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var listnode15 = nodearraylist7
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var listnode17 = nodearraylist8
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist10
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               null,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction282
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist7
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var listnode15 = nodearraylist8
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var listnode17 = nodearraylist9
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist11
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               null,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction283
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist7
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var listnode15 = nodearraylist8
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var listnode17 = nodearraylist9
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist11
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               null,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction284
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var listnode15 = nodearraylist9
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var listnode17 = nodearraylist10
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist12
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               null,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction286
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var listnode15 = nodearraylist9
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var listnode17 = nodearraylist10
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist12
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               null,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction287
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist9
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var listnode15 = nodearraylist10
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var listnode17 = nodearraylist11
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist13
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               null,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction289
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode19 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist6
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist7
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var listnode16 = nodearraylist8
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var listnode18 = nodearraylist9
+                                       assert listnode18 isa Array[Object]
+                                       listnode19 = concat(listnode19, listnode18)
+                                       var tkwendnode20 = nodearraylist11
+                                       assert tkwendnode20 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               null,
+                                               listnode17,
+                                               listnode19,
+                                               tkwendnode20
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction290
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode19 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var listnode16 = nodearraylist9
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var listnode18 = nodearraylist10
+                                       assert listnode18 isa Array[Object]
+                                       listnode19 = concat(listnode19, listnode18)
+                                       var tkwendnode20 = nodearraylist12
+                                       assert tkwendnode20 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               null,
+                                               listnode17,
+                                               listnode19,
+                                               tkwendnode20
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction291
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode19 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var listnode16 = nodearraylist9
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var listnode18 = nodearraylist10
+                                       assert listnode18 isa Array[Object]
+                                       listnode19 = concat(listnode19, listnode18)
+                                       var tkwendnode20 = nodearraylist12
+                                       assert tkwendnode20 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               null,
+                                               listnode17,
+                                               listnode19,
+                                               tkwendnode20
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction292
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode19 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var listnode16 = nodearraylist10
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var listnode18 = nodearraylist11
+                                       assert listnode18 isa Array[Object]
+                                       listnode19 = concat(listnode19, listnode18)
+                                       var tkwendnode20 = nodearraylist13
+                                       assert tkwendnode20 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               null,
+                                               listnode17,
+                                               listnode19,
+                                               tkwendnode20
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction294
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode19 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var listnode16 = nodearraylist10
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var listnode18 = nodearraylist11
+                                       assert listnode18 isa Array[Object]
+                                       listnode19 = concat(listnode19, listnode18)
+                                       var tkwendnode20 = nodearraylist13
+                                       assert tkwendnode20 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               null,
+                                               listnode17,
+                                               listnode19,
+                                               tkwendnode20
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction295
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist14 = p.pop
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode19 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist9
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist10
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var listnode16 = nodearraylist11
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var listnode18 = nodearraylist12
+                                       assert listnode18 isa Array[Object]
+                                       listnode19 = concat(listnode19, listnode18)
+                                       var tkwendnode20 = nodearraylist14
+                                       assert tkwendnode20 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               null,
+                                               listnode17,
+                                               listnode19,
+                                               tkwendnode20
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction297
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pexterncodeblocknode9 = nodearraylist6
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var listnode10 = nodearraylist7
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist10
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               pexterncodeblocknode9,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction298
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pexterncodeblocknode9 = nodearraylist7
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var listnode10 = nodearraylist8
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist11
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               pexterncodeblocknode9,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction299
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pexterncodeblocknode9 = nodearraylist7
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var listnode10 = nodearraylist8
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist11
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               pexterncodeblocknode9,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction300
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pexterncodeblocknode9 = nodearraylist8
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var listnode10 = nodearraylist9
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var listnode12 = nodearraylist10
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist12
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               pexterncodeblocknode9,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction302
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pexterncodeblocknode9 = nodearraylist8
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var listnode10 = nodearraylist9
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var listnode12 = nodearraylist10
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist12
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               pexterncodeblocknode9,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction303
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode11 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pexterncodeblocknode9 = nodearraylist9
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var listnode10 = nodearraylist10
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var listnode12 = nodearraylist11
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist13
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               null,
+                                               pexterncodeblocknode9,
+                                               listnode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction305
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var listnode14 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist6
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode10 = nodearraylist7
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var listnode13 = nodearraylist9
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist11
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               pexterncodeblocknode10,
+                                               listnode12,
+                                               listnode14,
+                                               tkwendnode15
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction306
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var listnode14 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode10 = nodearraylist8
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var listnode11 = nodearraylist9
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var listnode13 = nodearraylist10
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist12
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               pexterncodeblocknode10,
+                                               listnode12,
+                                               listnode14,
+                                               tkwendnode15
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction307
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var listnode14 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode10 = nodearraylist8
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var listnode11 = nodearraylist9
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var listnode13 = nodearraylist10
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist12
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               pexterncodeblocknode10,
+                                               listnode12,
+                                               listnode14,
+                                               tkwendnode15
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction308
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var listnode14 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode10 = nodearraylist9
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var listnode11 = nodearraylist10
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var listnode13 = nodearraylist11
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist13
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               pexterncodeblocknode10,
+                                               listnode12,
+                                               listnode14,
+                                               tkwendnode15
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction310
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var listnode14 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode10 = nodearraylist9
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var listnode11 = nodearraylist10
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var listnode13 = nodearraylist11
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist13
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               pexterncodeblocknode10,
+                                               listnode12,
+                                               listnode14,
+                                               tkwendnode15
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction311
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist14 = p.pop
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
+                                       var listnode14 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist9
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode10 = nodearraylist10
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var listnode11 = nodearraylist11
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var listnode13 = nodearraylist12
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist14
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               null,
+                                               pexterncodeblocknode10,
+                                               listnode12,
+                                               listnode14,
+                                               tkwendnode15
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction313
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist6
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var pexterncodeblocknode14 = nodearraylist7
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var listnode15 = nodearraylist8
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var listnode17 = nodearraylist9
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist11
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction314
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist7
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var listnode15 = nodearraylist9
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var listnode17 = nodearraylist10
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist12
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction315
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist7
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var listnode15 = nodearraylist9
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var listnode17 = nodearraylist10
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist12
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction316
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var listnode15 = nodearraylist10
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var listnode17 = nodearraylist11
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist13
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction318
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var listnode15 = nodearraylist10
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var listnode17 = nodearraylist11
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist13
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction319
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist14 = p.pop
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var listnode16 = new Array[Object]
+                                       var listnode18 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode12 = new Array[Object]
+                                       var listnode11 = nodearraylist9
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
+                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode12,
+                                               null
+                                       )
+                                       var pexterncodeblocknode14 = nodearraylist10
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var listnode15 = nodearraylist11
+                                       assert listnode15 isa Array[Object]
+                                       listnode16 = concat(listnode16, listnode15)
+                                       var listnode17 = nodearraylist12
+                                       assert listnode17 isa Array[Object]
+                                       listnode18 = concat(listnode18, listnode17)
+                                       var tkwendnode19 = nodearraylist14
+                                       assert tkwendnode19 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               pannotationsnode8,
+                                               pexterncodeblocknode14,
+                                               listnode16,
+                                               listnode18,
+                                               tkwendnode19
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction321
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode19 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist6
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist7
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var pexterncodeblocknode15 = nodearraylist8
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var listnode16 = nodearraylist9
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var listnode18 = nodearraylist10
+                                       assert listnode18 isa Array[Object]
+                                       listnode19 = concat(listnode19, listnode18)
+                                       var tkwendnode20 = nodearraylist12
+                                       assert tkwendnode20 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode17,
+                                               listnode19,
+                                               tkwendnode20
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction322
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode19 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var pexterncodeblocknode15 = nodearraylist9
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var listnode16 = nodearraylist10
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var listnode18 = nodearraylist11
+                                       assert listnode18 isa Array[Object]
+                                       listnode19 = concat(listnode19, listnode18)
+                                       var tkwendnode20 = nodearraylist13
+                                       assert tkwendnode20 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode17,
+                                               listnode19,
+                                               tkwendnode20
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction323
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode19 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist8
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var pexterncodeblocknode15 = nodearraylist9
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var listnode16 = nodearraylist10
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var listnode18 = nodearraylist11
+                                       assert listnode18 isa Array[Object]
+                                       listnode19 = concat(listnode19, listnode18)
+                                       var tkwendnode20 = nodearraylist13
+                                       assert tkwendnode20 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode17,
+                                               listnode19,
+                                               tkwendnode20
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction324
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist14 = p.pop
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode19 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var pexterncodeblocknode15 = nodearraylist10
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var listnode16 = nodearraylist11
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var listnode18 = nodearraylist12
+                                       assert listnode18 isa Array[Object]
+                                       listnode19 = concat(listnode19, listnode18)
+                                       var tkwendnode20 = nodearraylist14
+                                       assert tkwendnode20 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode17,
+                                               listnode19,
+                                               tkwendnode20
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction326
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist14 = p.pop
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode19 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist7
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist9
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var pexterncodeblocknode15 = nodearraylist10
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var listnode16 = nodearraylist11
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var listnode18 = nodearraylist12
+                                       assert listnode18 isa Array[Object]
+                                       listnode19 = concat(listnode19, listnode18)
+                                       var tkwendnode20 = nodearraylist14
+                                       assert tkwendnode20 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode17,
+                                               listnode19,
+                                               tkwendnode20
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction327
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist15 = p.pop
+                                       var nodearraylist14 = p.pop
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode17 = new Array[Object]
+                                       var listnode19 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist8
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist9
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode13 = new Array[Object]
+                                       var listnode12 = nodearraylist10
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               null,
+                                               listnode13,
+                                               null
+                                       )
+                                       var pexterncodeblocknode15 = nodearraylist11
+                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
+                                       var listnode16 = nodearraylist12
+                                       assert listnode16 isa Array[Object]
+                                       listnode17 = concat(listnode17, listnode16)
+                                       var listnode18 = nodearraylist13
+                                       assert listnode18 isa Array[Object]
+                                       listnode19 = concat(listnode19, listnode18)
+                                       var tkwendnode20 = nodearraylist15
+                                       assert tkwendnode20 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pannotationsnode9,
+                                               pexterncodeblocknode15,
+                                               listnode17,
+                                               listnode19,
+                                               tkwendnode20
+                                       )
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction329
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwclassnode2 = nodearraylist1
+                                       assert tkwclassnode2 isa nullable TKwclass
+                                       var pclasskindnode1: nullable AConcreteClasskind = new AConcreteClasskind.init_aconcreteclasskind(
+                                               tkwclassnode2
+                                       )
+                                       node_list = pclasskindnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction330
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwabstractnode2 = nodearraylist1
+                                       assert tkwabstractnode2 isa nullable TKwabstract
+                                       var tkwclassnode3 = nodearraylist2
+                                       assert tkwclassnode3 isa nullable TKwclass
+                                       var pclasskindnode1: nullable AAbstractClasskind = new AAbstractClasskind.init_aabstractclasskind(
+                                               tkwabstractnode2,
+                                               tkwclassnode3
+                                       )
+                                       node_list = pclasskindnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction331
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7559,7 +15497,7 @@ private class ReduceAction139
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction140
+private class ReduceAction332
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7574,7 +15512,7 @@ private class ReduceAction140
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction141
+private class ReduceAction333
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7590,7 +15528,7 @@ private class ReduceAction141
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction142
+private class ReduceAction334
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7609,205 +15547,538 @@ private class ReduceAction142
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction143
+private class ReduceAction335
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pformaldefnode1 = nodearraylist3
+                                       if pformaldefnode1 != null then
+                                               listnode2.add(pformaldefnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction336
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var pformaldefnode1 = nodearraylist3
+                                       var listnode2 = nodearraylist4
+                                       assert listnode2 isa Array[Object]
+                                       if pformaldefnode1 != null then
+                                               listnode3.add(pformaldefnode1)
+                                       end
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction337
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pformaldefnode1 = nodearraylist3
+                                       node_list = pformaldefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction338
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tclassidnode2 = nodearraylist1
+                                       assert tclassidnode2 isa nullable TClassid
+                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
+                                               tclassidnode2,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pformaldefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction339
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tclassidnode2 = nodearraylist1
+                                       assert tclassidnode2 isa nullable TClassid
+                                       var pannotationsnode4 = nodearraylist2
+                                       assert pannotationsnode4 isa nullable AAnnotations
+                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
+                                               tclassidnode2,
+                                               null,
+                                               pannotationsnode4
+                                       )
+                                       node_list = pformaldefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction340
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tclassidnode2 = nodearraylist1
+                                       assert tclassidnode2 isa nullable TClassid
+                                       var ptypenode3 = nodearraylist2
+                                       assert ptypenode3 isa nullable AType
+                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
+                                               tclassidnode2,
+                                               ptypenode3,
+                                               null
+                                       )
+                                       node_list = pformaldefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction341
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tclassidnode2 = nodearraylist1
+                                       assert tclassidnode2 isa nullable TClassid
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var pannotationsnode4 = nodearraylist2
+                                       assert pannotationsnode4 isa nullable AAnnotations
+                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
+                                               tclassidnode2,
+                                               ptypenode3,
+                                               pannotationsnode4
+                                       )
+                                       node_list = pformaldefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction342
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwsupernode2 = nodearraylist2
+                                       assert tkwsupernode2 isa nullable TKwsuper
+                                       var ptypenode3 = nodearraylist4
+                                       assert ptypenode3 isa nullable AType
+                                       var psuperclassnode1: nullable ASuperclass = new ASuperclass.init_asuperclass(
+                                               tkwsupernode2,
+                                               ptypenode3,
+                                               null
+                                       )
+                                       node_list = psuperclassnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction343
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwsupernode2 = nodearraylist2
+                                       assert tkwsupernode2 isa nullable TKwsuper
+                                       var ptypenode3 = nodearraylist4
+                                       assert ptypenode3 isa nullable AType
+                                       var pannotationsnode4 = nodearraylist5
+                                       assert pannotationsnode4 isa nullable AAnnotations
+                                       var psuperclassnode1: nullable ASuperclass = new ASuperclass.init_asuperclass(
+                                               tkwsupernode2,
+                                               ptypenode3,
+                                               pannotationsnode4
+                                       )
+                                       node_list = psuperclassnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction344
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pformaldefnode1 = nodearraylist3
-                                       if pformaldefnode1 != null then
-                                               listnode2.add(pformaldefnode1)
-                                       end
-                                       node_list = listnode2
+                                       var ppropdefnode1 = nodearraylist1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction144
+private class ReduceAction345
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pformaldefnode1 = nodearraylist3
-                                       var listnode2 = nodearraylist4
-                                       assert listnode2 isa Array[Object]
-                                       if pformaldefnode1 != null then
-                                               listnode3.add(pformaldefnode1)
-                                       end
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode9 = nodearraylist7
+                                       assert pexprnode9 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null,
+                                               pexprnode9
+                                       )
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction145
+private class ReduceAction346
        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 pformaldefnode1 = nodearraylist3
-                                       node_list = pformaldefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction146
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa nullable TClassid
-                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
-                                               tclassidnode2,
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode9 = nodearraylist8
+                                       assert pexprnode9 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
                                                null,
-                                               null
+                                               pexprnode9
                                        )
-                                       node_list = pformaldefnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction147
+private class ReduceAction347
        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 tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa nullable TClassid
-                                       var pannotationsnode4 = nodearraylist2
-                                       assert pannotationsnode4 isa nullable AAnnotations
-                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
-                                               tclassidnode2,
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pannotationsnode8 = nodearraylist6
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pexprnode9 = nodearraylist8
+                                       assert pexprnode9 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
                                                null,
-                                               pannotationsnode4
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pannotationsnode8,
+                                               pexprnode9
                                        )
-                                       node_list = pformaldefnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction148
+private class ReduceAction348
        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 tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa nullable TClassid
-                                       var ptypenode3 = nodearraylist2
-                                       assert ptypenode3 isa nullable AType
-                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
-                                               tclassidnode2,
-                                               ptypenode3,
-                                               null
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pannotationsnode8 = nodearraylist7
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pexprnode9 = nodearraylist9
+                                       assert pexprnode9 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pannotationsnode8,
+                                               pexprnode9
                                        )
-                                       node_list = pformaldefnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction149
+private class ReduceAction349
        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 tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa nullable TClassid
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable AType
-                                       var pannotationsnode4 = nodearraylist2
-                                       assert pannotationsnode4 isa nullable AAnnotations
-                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
-                                               tclassidnode2,
-                                               ptypenode3,
-                                               pannotationsnode4
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode9 = nodearraylist7
+                                       assert pexprnode9 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null,
+                                               pexprnode9
                                        )
-                                       node_list = pformaldefnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction150
+private class ReduceAction350
        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 tkwsupernode2 = nodearraylist2
-                                       assert tkwsupernode2 isa nullable TKwsuper
-                                       var ptypenode3 = nodearraylist4
-                                       assert ptypenode3 isa nullable AType
-                                       var psuperclassnode1: nullable ASuperclass = new ASuperclass.init_asuperclass(
-                                               tkwsupernode2,
-                                               ptypenode3,
-                                               null
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode9 = nodearraylist8
+                                       assert pexprnode9 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null,
+                                               pexprnode9
                                        )
-                                       node_list = psuperclassnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction151
+private class ReduceAction351
        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 tkwsupernode2 = nodearraylist2
-                                       assert tkwsupernode2 isa nullable TKwsuper
-                                       var ptypenode3 = nodearraylist4
-                                       assert ptypenode3 isa nullable AType
-                                       var pannotationsnode4 = nodearraylist5
-                                       assert pannotationsnode4 isa nullable AAnnotations
-                                       var psuperclassnode1: nullable ASuperclass = new ASuperclass.init_asuperclass(
-                                               tkwsupernode2,
-                                               ptypenode3,
-                                               pannotationsnode4
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pannotationsnode8 = nodearraylist6
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pexprnode9 = nodearraylist8
+                                       assert pexprnode9 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pannotationsnode8,
+                                               pexprnode9
                                        )
-                                       node_list = psuperclassnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction152
+private class ReduceAction352
        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 ppropdefnode1 = nodearraylist1
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pannotationsnode8 = nodearraylist7
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pexprnode9 = nodearraylist9
+                                       assert pexprnode9 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pannotationsnode8,
+                                               pexprnode9
+                                       )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction153
+private class ReduceAction353
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -7825,7 +16096,7 @@ private class ReduceAction153
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
+                                       var pexprnode9 = nodearraylist8
                                        assert pexprnode9 isa nullable AExpr
                                        var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
                                                pdocnode2,
@@ -7841,11 +16112,12 @@ private class ReduceAction153
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction154
+private class ReduceAction354
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -7866,7 +16138,7 @@ private class ReduceAction154
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
+                                       var pexprnode9 = nodearraylist9
                                        assert pexprnode9 isa nullable AExpr
                                        var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
                                                pdocnode2,
@@ -7882,13 +16154,11 @@ private class ReduceAction154
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction155
+private class ReduceAction355
        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
@@ -7907,29 +16177,24 @@ private class ReduceAction155
                                        assert psignaturenode7 isa nullable ASignature
                                        var pannotationsnode8 = nodearraylist6
                                        assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
                                                tkwmethnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
+                                               pannotationsnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction156
+private class ReduceAction356
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -7951,28 +16216,24 @@ private class ReduceAction156
                                        assert psignaturenode7 isa nullable ASignature
                                        var pannotationsnode8 = nodearraylist7
                                        assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                tkwmethnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
+                                               pannotationsnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction157
+private class ReduceAction357
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -7990,28 +16251,24 @@ private class ReduceAction157
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
                                                tkwmethnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               null,
-                                               pexprnode9
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction158
+private class ReduceAction358
        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
@@ -8032,29 +16289,24 @@ private class ReduceAction158
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                tkwmethnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               null,
-                                               pexprnode9
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction159
+private class ReduceAction359
        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
@@ -8072,31 +16324,23 @@ private class ReduceAction159
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
                                                tkwmethnode5,
                                                pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
+                                               psignaturenode7
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction160
+private class ReduceAction360
        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
@@ -8117,30 +16361,23 @@ private class ReduceAction160
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist7
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                tkwmethnode5,
                                                pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
+                                               psignaturenode7
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction161
+private class ReduceAction361
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -8158,9 +16395,7 @@ private class ReduceAction161
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
@@ -8168,18 +16403,18 @@ private class ReduceAction161
                                                pmethidnode6,
                                                psignaturenode7,
                                                null,
-                                               pexprnode9
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction162
+private class ReduceAction362
        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
@@ -8200,9 +16435,7 @@ private class ReduceAction162
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
@@ -8210,17 +16443,20 @@ private class ReduceAction162
                                                pmethidnode6,
                                                psignaturenode7,
                                                null,
-                                               pexprnode9
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction163
+private class ReduceAction363
        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
@@ -8237,26 +16473,30 @@ private class ReduceAction163
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       var tstringnode8 = nodearraylist8
+                                       assert tstringnode8 isa nullable TString
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
                                                tkwmethnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               pannotationsnode8
+                                               tstringnode8,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction164
+private class ReduceAction364
        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
@@ -8276,26 +16516,29 @@ private class ReduceAction164
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist7
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       var tstringnode8 = nodearraylist9
+                                       assert tstringnode8 isa nullable TString
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                tkwmethnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               pannotationsnode8
+                                               tstringnode8,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction165
+private class ReduceAction365
        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
@@ -8313,24 +16556,29 @@ private class ReduceAction165
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       var pexterncallsnode9 = nodearraylist8
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
                                                tkwmethnode5,
                                                pmethidnode6,
                                                psignaturenode7,
+                                               null,
+                                               pexterncallsnode9,
                                                null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction166
+private class ReduceAction366
        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
@@ -8351,24 +16599,30 @@ private class ReduceAction166
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       var pexterncallsnode9 = nodearraylist9
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                tkwmethnode5,
                                                pmethidnode6,
                                                psignaturenode7,
+                                               null,
+                                               pexterncallsnode9,
                                                null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction167
+private class ReduceAction367
        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
@@ -8386,23 +16640,32 @@ private class ReduceAction167
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
+                                       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
+                                               psignaturenode7,
+                                               tstringnode8,
+                                               pexterncallsnode9,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction168
+private class ReduceAction368
        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
@@ -8423,23 +16686,31 @@ private class ReduceAction168
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
+                                       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
+                                               psignaturenode7,
+                                               tstringnode8,
+                                               pexterncallsnode9,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction169
+private class ReduceAction369
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -8457,6 +16728,8 @@ private class ReduceAction169
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
+                                       var pexterncodeblocknode10 = nodearraylist8
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
                                                null,
@@ -8466,17 +16739,18 @@ private class ReduceAction169
                                                psignaturenode7,
                                                null,
                                                null,
-                                               null
+                                               pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction170
+private class ReduceAction370
        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
@@ -8497,6 +16771,8 @@ private class ReduceAction170
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
+                                       var pexterncodeblocknode10 = nodearraylist9
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -8506,17 +16782,18 @@ private class ReduceAction170
                                                psignaturenode7,
                                                null,
                                                null,
-                                               null
+                                               pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction171
+private class ReduceAction371
        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
@@ -8537,6 +16814,8 @@ private class ReduceAction171
                                        assert psignaturenode7 isa nullable ASignature
                                        var tstringnode8 = nodearraylist8
                                        assert tstringnode8 isa nullable TString
+                                       var pexterncodeblocknode10 = nodearraylist9
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
                                                null,
@@ -8546,17 +16825,18 @@ private class ReduceAction171
                                                psignaturenode7,
                                                tstringnode8,
                                                null,
-                                               null
+                                               pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction172
+private class ReduceAction372
        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
@@ -8580,6 +16860,8 @@ private class ReduceAction172
                                        assert psignaturenode7 isa nullable ASignature
                                        var tstringnode8 = nodearraylist9
                                        assert tstringnode8 isa nullable TString
+                                       var pexterncodeblocknode10 = nodearraylist10
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -8589,17 +16871,18 @@ private class ReduceAction172
                                                psignaturenode7,
                                                tstringnode8,
                                                null,
-                                               null
+                                               pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction173
+private class ReduceAction373
        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
@@ -8620,6 +16903,8 @@ private class ReduceAction173
                                        assert psignaturenode7 isa nullable ASignature
                                        var pexterncallsnode9 = nodearraylist8
                                        assert pexterncallsnode9 isa nullable AExternCalls
+                                       var pexterncodeblocknode10 = nodearraylist9
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
                                                null,
@@ -8629,17 +16914,18 @@ private class ReduceAction173
                                                psignaturenode7,
                                                null,
                                                pexterncallsnode9,
-                                               null
+                                               pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction174
+private class ReduceAction374
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -8663,6 +16949,8 @@ private class ReduceAction174
                                        assert psignaturenode7 isa nullable ASignature
                                        var pexterncallsnode9 = nodearraylist9
                                        assert pexterncallsnode9 isa nullable AExternCalls
+                                       var pexterncodeblocknode10 = nodearraylist10
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -8672,17 +16960,18 @@ private class ReduceAction174
                                                psignaturenode7,
                                                null,
                                                pexterncallsnode9,
-                                               null
+                                               pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction175
+private class ReduceAction375
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -8706,6 +16995,8 @@ private class ReduceAction175
                                        assert tstringnode8 isa nullable TString
                                        var pexterncallsnode9 = nodearraylist9
                                        assert pexterncallsnode9 isa nullable AExternCalls
+                                       var pexterncodeblocknode10 = nodearraylist10
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
                                                null,
@@ -8715,17 +17006,18 @@ private class ReduceAction175
                                                psignaturenode7,
                                                tstringnode8,
                                                pexterncallsnode9,
-                                               null
+                                               pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction176
+private class ReduceAction376
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -8752,6 +17044,8 @@ private class ReduceAction176
                                        assert tstringnode8 isa nullable TString
                                        var pexterncallsnode9 = nodearraylist10
                                        assert pexterncallsnode9 isa nullable AExternCalls
+                                       var pexterncodeblocknode10 = nodearraylist11
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -8761,19 +17055,17 @@ private class ReduceAction176
                                                psignaturenode7,
                                                tstringnode8,
                                                pexterncallsnode9,
-                                               null
+                                               pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction177
+private class ReduceAction377
        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
@@ -8790,7 +17082,7 @@ private class ReduceAction177
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist8
+                                       var pexterncodeblocknode10 = nodearraylist6
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
@@ -8807,13 +17099,11 @@ private class ReduceAction177
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction178
+private class ReduceAction378
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -8833,7 +17123,7 @@ private class ReduceAction178
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist9
+                                       var pexterncodeblocknode10 = nodearraylist7
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
@@ -8850,13 +17140,11 @@ private class ReduceAction178
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction179
+private class ReduceAction379
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -8874,9 +17162,9 @@ private class ReduceAction179
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist9
+                                       var pexterncallsnode9 = nodearraylist6
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var pexterncodeblocknode10 = nodearraylist7
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
@@ -8885,21 +17173,19 @@ private class ReduceAction179
                                                tkwmethnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               tstringnode8,
                                                null,
+                                               pexterncallsnode9,
                                                pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction180
+private class ReduceAction380
        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
@@ -8920,9 +17206,9 @@ private class ReduceAction180
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist10
+                                       var pexterncallsnode9 = nodearraylist7
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var pexterncodeblocknode10 = nodearraylist8
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
@@ -8931,67 +17217,53 @@ private class ReduceAction180
                                                tkwmethnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               tstringnode8,
                                                null,
+                                               pexterncallsnode9,
                                                pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction181
+private class ReduceAction381
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
+                                       var pvisibilitynode6 = nodearraylist2
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist3
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist4
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
                                                null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction182
+private class ReduceAction382
        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
@@ -8999,45 +17271,36 @@ private class ReduceAction182
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa nullable TKwredef
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist4
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist5
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
                                                null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction183
+private class ReduceAction383
        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
@@ -9045,45 +17308,36 @@ private class ReduceAction183
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
+                                       var pablenode3 = nodearraylist2
+                                       assert pablenode3 isa nullable AAble
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist4
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist5
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction184
+private class ReduceAction384
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -9092,43 +17346,38 @@ private class ReduceAction184
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist10
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist11
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var pablenode3 = nodearraylist2
+                                       assert pablenode3 isa nullable AAble
+                                       var tkwredefnode5 = nodearraylist3
+                                       assert tkwredefnode5 isa nullable TKwredef
+                                       var pvisibilitynode6 = nodearraylist4
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist5
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist6
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction185
+private class ReduceAction385
        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
@@ -9136,37 +17385,36 @@ private class ReduceAction185
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist6
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
+                                       var pablenode4 = nodearraylist2
+                                       assert pablenode4 isa nullable AAble
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist4
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist5
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
                                                null,
                                                null,
-                                               pexterncodeblocknode10
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction186
+private class ReduceAction386
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -9175,39 +17423,38 @@ private class ReduceAction186
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
+                                       var pablenode4 = nodearraylist2
+                                       assert pablenode4 isa nullable AAble
+                                       var tkwredefnode5 = nodearraylist3
+                                       assert tkwredefnode5 isa nullable TKwredef
+                                       var pvisibilitynode6 = nodearraylist4
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist5
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist6
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
                                                null,
+                                               pablenode4,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
                                                null,
-                                               pexterncodeblocknode10
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction187
+private class ReduceAction387
        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
@@ -9216,39 +17463,38 @@ private class ReduceAction187
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist6
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
+                                       var pablenode3 = nodearraylist2
+                                       assert pablenode3 isa nullable AAble
+                                       var pablenode4 = nodearraylist3
+                                       assert pablenode4 isa nullable AAble
+                                       var pvisibilitynode6 = nodearraylist4
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist5
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist6
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode4,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
                                                null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction188
+private class ReduceAction388
        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
@@ -9258,40 +17504,41 @@ private class ReduceAction188
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist7
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
+                                       var pablenode3 = nodearraylist2
+                                       assert pablenode3 isa nullable AAble
+                                       var pablenode4 = nodearraylist3
+                                       assert pablenode4 isa nullable AAble
+                                       var tkwredefnode5 = nodearraylist4
+                                       assert tkwredefnode5 isa nullable TKwredef
+                                       var pvisibilitynode6 = nodearraylist5
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist6
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist7
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               pablenode3,
+                                               pablenode4,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
                                                null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction189
+private class ReduceAction389
        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
@@ -9304,6 +17551,8 @@ private class ReduceAction189
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist4
                                        assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode10 = nodearraylist5
+                                       assert ptypenode10 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -9313,7 +17562,7 @@ private class ReduceAction189
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               null,
+                                               ptypenode10,
                                                null,
                                                null
                                        )
@@ -9321,11 +17570,12 @@ private class ReduceAction189
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction190
+private class ReduceAction390
        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
@@ -9341,6 +17591,8 @@ private class ReduceAction190
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist5
                                        assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode10 = nodearraylist6
+                                       assert ptypenode10 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -9350,7 +17602,7 @@ private class ReduceAction190
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               null,
+                                               ptypenode10,
                                                null,
                                                null
                                        )
@@ -9358,11 +17610,12 @@ private class ReduceAction190
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction191
+private class ReduceAction391
        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
@@ -9378,6 +17631,8 @@ private class ReduceAction191
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist5
                                        assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode10 = nodearraylist6
+                                       assert ptypenode10 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -9387,7 +17642,7 @@ private class ReduceAction191
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               null,
+                                               ptypenode10,
                                                null,
                                                null
                                        )
@@ -9395,11 +17650,12 @@ private class ReduceAction191
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction192
+private class ReduceAction392
        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
@@ -9418,6 +17674,8 @@ private class ReduceAction192
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist6
                                        assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode10 = nodearraylist7
+                                       assert ptypenode10 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -9427,7 +17685,7 @@ private class ReduceAction192
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               null,
+                                               ptypenode10,
                                                null,
                                                null
                                        )
@@ -9435,11 +17693,12 @@ private class ReduceAction192
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction193
+private class ReduceAction393
        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
@@ -9455,6 +17714,8 @@ private class ReduceAction193
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist5
                                        assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode10 = nodearraylist6
+                                       assert ptypenode10 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -9464,7 +17725,7 @@ private class ReduceAction193
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               null,
+                                               ptypenode10,
                                                null,
                                                null
                                        )
@@ -9472,11 +17733,12 @@ private class ReduceAction193
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction194
+private class ReduceAction394
        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
@@ -9495,6 +17757,8 @@ private class ReduceAction194
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist6
                                        assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode10 = nodearraylist7
+                                       assert ptypenode10 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -9504,7 +17768,7 @@ private class ReduceAction194
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               null,
+                                               ptypenode10,
                                                null,
                                                null
                                        )
@@ -9512,11 +17776,12 @@ private class ReduceAction194
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction195
+private class ReduceAction395
        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
@@ -9535,6 +17800,8 @@ private class ReduceAction195
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist6
                                        assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode10 = nodearraylist7
+                                       assert ptypenode10 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -9544,7 +17811,7 @@ private class ReduceAction195
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               null,
+                                               ptypenode10,
                                                null,
                                                null
                                        )
@@ -9552,11 +17819,12 @@ private class ReduceAction195
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction196
+private class ReduceAction396
        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
@@ -9578,6 +17846,8 @@ private class ReduceAction196
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist7
                                        assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode10 = nodearraylist8
+                                       assert ptypenode10 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -9587,7 +17857,7 @@ private class ReduceAction196
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               null,
+                                               ptypenode10,
                                                null,
                                                null
                                        )
@@ -9595,11 +17865,13 @@ private class ReduceAction196
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction197
+private class ReduceAction397
        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
@@ -9613,8 +17885,8 @@ private class ReduceAction197
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist4
                                        assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
+                                       var pexprnode12 = nodearraylist7
+                                       assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -9624,19 +17896,21 @@ private class ReduceAction197
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               ptypenode10,
                                                null,
-                                               null
+                                               null,
+                                               pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction198
+private class ReduceAction398
        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
@@ -9653,8 +17927,8 @@ private class ReduceAction198
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist5
                                        assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
+                                       var pexprnode12 = nodearraylist8
+                                       assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -9664,19 +17938,21 @@ private class ReduceAction198
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               ptypenode10,
                                                null,
-                                               null
+                                               null,
+                                               pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction199
+private class ReduceAction399
        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
@@ -9693,8 +17969,8 @@ private class ReduceAction199
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist5
                                        assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
+                                       var pexprnode12 = nodearraylist8
+                                       assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -9704,19 +17980,21 @@ private class ReduceAction199
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               ptypenode10,
                                                null,
-                                               null
+                                               null,
+                                               pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction200
+private class ReduceAction400
        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
@@ -9736,8 +18014,8 @@ private class ReduceAction200
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist6
                                        assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa nullable AType
+                                       var pexprnode12 = nodearraylist9
+                                       assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -9747,19 +18025,21 @@ private class ReduceAction200
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               ptypenode10,
                                                null,
-                                               null
+                                               null,
+                                               pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction201
+private class ReduceAction401
        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
@@ -9776,8 +18056,8 @@ private class ReduceAction201
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist5
                                        assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
+                                       var pexprnode12 = nodearraylist8
+                                       assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -9787,19 +18067,21 @@ private class ReduceAction201
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               ptypenode10,
                                                null,
-                                               null
+                                               null,
+                                               pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction202
+private class ReduceAction402
        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
@@ -9819,8 +18101,8 @@ private class ReduceAction202
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist6
                                        assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa nullable AType
+                                       var pexprnode12 = nodearraylist9
+                                       assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -9830,19 +18112,21 @@ private class ReduceAction202
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               ptypenode10,
                                                null,
-                                               null
+                                               null,
+                                               pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction203
+private class ReduceAction403
        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
@@ -9862,8 +18146,8 @@ private class ReduceAction203
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist6
                                        assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa nullable AType
+                                       var pexprnode12 = nodearraylist9
+                                       assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -9873,19 +18157,21 @@ private class ReduceAction203
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               ptypenode10,
                                                null,
-                                               null
+                                               null,
+                                               pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction204
+private class ReduceAction404
        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
@@ -9908,8 +18194,8 @@ private class ReduceAction204
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist7
                                        assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist8
-                                       assert ptypenode10 isa nullable AType
+                                       var pexprnode12 = nodearraylist10
+                                       assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -9919,19 +18205,20 @@ private class ReduceAction204
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               ptypenode10,
                                                null,
-                                               null
+                                               null,
+                                               pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction205
+private class ReduceAction405
        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
@@ -9947,7 +18234,9 @@ private class ReduceAction205
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist4
                                        assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist7
+                                       var ptypenode10 = nodearraylist5
+                                       assert ptypenode10 isa nullable AType
+                                       var pexprnode12 = nodearraylist8
                                        assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
@@ -9958,7 +18247,7 @@ private class ReduceAction205
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               null,
+                                               ptypenode10,
                                                null,
                                                pexprnode12
                                        )
@@ -9966,11 +18255,12 @@ private class ReduceAction205
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction206
+private class ReduceAction406
        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
@@ -9989,7 +18279,9 @@ private class ReduceAction206
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist5
                                        assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist8
+                                       var ptypenode10 = nodearraylist6
+                                       assert ptypenode10 isa nullable AType
+                                       var pexprnode12 = nodearraylist9
                                        assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
@@ -10000,7 +18292,7 @@ private class ReduceAction206
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               null,
+                                               ptypenode10,
                                                null,
                                                pexprnode12
                                        )
@@ -10008,11 +18300,12 @@ private class ReduceAction206
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction207
+private class ReduceAction407
        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
@@ -10031,7 +18324,9 @@ private class ReduceAction207
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist5
                                        assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist8
+                                       var ptypenode10 = nodearraylist6
+                                       assert ptypenode10 isa nullable AType
+                                       var pexprnode12 = nodearraylist9
                                        assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
@@ -10042,7 +18337,7 @@ private class ReduceAction207
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               null,
+                                               ptypenode10,
                                                null,
                                                pexprnode12
                                        )
@@ -10050,11 +18345,12 @@ private class ReduceAction207
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction208
+private class ReduceAction408
        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
@@ -10076,7 +18372,9 @@ private class ReduceAction208
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist6
                                        assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist9
+                                       var ptypenode10 = nodearraylist7
+                                       assert ptypenode10 isa nullable AType
+                                       var pexprnode12 = nodearraylist10
                                        assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
@@ -10087,7 +18385,7 @@ private class ReduceAction208
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               null,
+                                               ptypenode10,
                                                null,
                                                pexprnode12
                                        )
@@ -10095,11 +18393,12 @@ private class ReduceAction208
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction209
+private class ReduceAction409
        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
@@ -10118,7 +18417,9 @@ private class ReduceAction209
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist5
                                        assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist8
+                                       var ptypenode10 = nodearraylist6
+                                       assert ptypenode10 isa nullable AType
+                                       var pexprnode12 = nodearraylist9
                                        assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
@@ -10129,7 +18430,7 @@ private class ReduceAction209
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               null,
+                                               ptypenode10,
                                                null,
                                                pexprnode12
                                        )
@@ -10137,11 +18438,12 @@ private class ReduceAction209
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction210
+private class ReduceAction410
        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
@@ -10163,7 +18465,9 @@ private class ReduceAction210
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist6
                                        assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist9
+                                       var ptypenode10 = nodearraylist7
+                                       assert ptypenode10 isa nullable AType
+                                       var pexprnode12 = nodearraylist10
                                        assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
@@ -10174,7 +18478,7 @@ private class ReduceAction210
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               null,
+                                               ptypenode10,
                                                null,
                                                pexprnode12
                                        )
@@ -10182,11 +18486,12 @@ private class ReduceAction210
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction211
+private class ReduceAction411
        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
@@ -10208,7 +18513,9 @@ private class ReduceAction211
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist6
                                        assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist9
+                                       var ptypenode10 = nodearraylist7
+                                       assert ptypenode10 isa nullable AType
+                                       var pexprnode12 = nodearraylist10
                                        assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
@@ -10219,7 +18526,7 @@ private class ReduceAction211
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               null,
+                                               ptypenode10,
                                                null,
                                                pexprnode12
                                        )
@@ -10227,11 +18534,12 @@ private class ReduceAction211
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction212
+private class ReduceAction412
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -10256,7 +18564,9 @@ private class ReduceAction212
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tattridnode8 = nodearraylist7
                                        assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist10
+                                       var ptypenode10 = nodearraylist8
+                                       assert ptypenode10 isa nullable AType
+                                       var pexprnode12 = nodearraylist11
                                        assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
@@ -10267,7 +18577,7 @@ private class ReduceAction212
                                                tkwvarnode7,
                                                tattridnode8,
                                                null,
-                                               null,
+                                               ptypenode10,
                                                null,
                                                pexprnode12
                                        )
@@ -10275,15 +18585,11 @@ private class ReduceAction212
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction213
+private class ReduceAction413
        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
@@ -10294,12 +18600,8 @@ private class ReduceAction213
                                        assert pvisibilitynode6 isa nullable AVisibility
                                        var tkwvarnode7 = nodearraylist3
                                        assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist4
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
+                                       var tidnode9 = nodearraylist4
+                                       assert tidnode9 isa nullable TId
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -10307,25 +18609,21 @@ private class ReduceAction213
                                                null,
                                                pvisibilitynode6,
                                                tkwvarnode7,
-                                               tattridnode8,
                                                null,
-                                               ptypenode10,
+                                               tidnode9,
                                                null,
-                                               pexprnode12
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction214
+private class ReduceAction414
        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
@@ -10339,12 +18637,8 @@ private class ReduceAction214
                                        assert pvisibilitynode6 isa nullable AVisibility
                                        var tkwvarnode7 = nodearraylist4
                                        assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
+                                       var tidnode9 = nodearraylist5
+                                       assert tidnode9 isa nullable TId
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -10352,25 +18646,21 @@ private class ReduceAction214
                                                tkwredefnode5,
                                                pvisibilitynode6,
                                                tkwvarnode7,
-                                               tattridnode8,
                                                null,
-                                               ptypenode10,
+                                               tidnode9,
                                                null,
-                                               pexprnode12
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction215
+private class ReduceAction415
        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
@@ -10378,44 +18668,36 @@ private class ReduceAction215
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist3
+                                       var pvisibilitynode6 = nodearraylist2
                                        assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
+                                       var tkwvarnode7 = nodearraylist3
                                        assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist6
+                                       var tidnode9 = nodearraylist4
+                                       assert tidnode9 isa nullable TId
+                                       var ptypenode10 = nodearraylist5
                                        assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               pablenode3,
+                                               null,
                                                null,
                                                null,
                                                pvisibilitynode6,
                                                tkwvarnode7,
-                                               tattridnode8,
                                                null,
+                                               tidnode9,
                                                ptypenode10,
                                                null,
-                                               pexprnode12
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction216
+private class ReduceAction416
        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
@@ -10424,46 +18706,38 @@ private class ReduceAction216
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist3
+                                       var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist4
+                                       var pvisibilitynode6 = nodearraylist3
                                        assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
+                                       var tkwvarnode7 = nodearraylist4
                                        assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist7
+                                       var tidnode9 = nodearraylist5
+                                       assert tidnode9 isa nullable TId
+                                       var ptypenode10 = nodearraylist6
                                        assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               pablenode3,
+                                               null,
                                                null,
                                                tkwredefnode5,
                                                pvisibilitynode6,
                                                tkwvarnode7,
-                                               tattridnode8,
                                                null,
+                                               tidnode9,
                                                ptypenode10,
                                                null,
-                                               pexprnode12
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction217
+private class ReduceAction417
        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
@@ -10471,18 +18745,14 @@ private class ReduceAction217
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist2
+                                       var pablenode4 = nodearraylist5
                                        assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist3
+                                       var pvisibilitynode6 = nodearraylist2
                                        assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
+                                       var tkwvarnode7 = nodearraylist3
                                        assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
+                                       var tidnode9 = nodearraylist4
+                                       assert tidnode9 isa nullable TId
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -10490,25 +18760,21 @@ private class ReduceAction217
                                                null,
                                                pvisibilitynode6,
                                                tkwvarnode7,
-                                               tattridnode8,
                                                null,
-                                               ptypenode10,
+                                               tidnode9,
                                                null,
-                                               pexprnode12
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction218
+private class ReduceAction418
        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
@@ -10517,20 +18783,16 @@ private class ReduceAction218
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist2
+                                       var pablenode4 = nodearraylist6
                                        assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist3
+                                       var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist4
+                                       var pvisibilitynode6 = nodearraylist3
                                        assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
+                                       var tkwvarnode7 = nodearraylist4
                                        assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
+                                       var tidnode9 = nodearraylist5
+                                       assert tidnode9 isa nullable TId
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -10538,25 +18800,21 @@ private class ReduceAction218
                                                tkwredefnode5,
                                                pvisibilitynode6,
                                                tkwvarnode7,
-                                               tattridnode8,
                                                null,
-                                               ptypenode10,
+                                               tidnode9,
                                                null,
-                                               pexprnode12
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction219
+private class ReduceAction419
        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
@@ -10565,46 +18823,38 @@ private class ReduceAction219
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pablenode4 = nodearraylist3
+                                       var pablenode4 = nodearraylist6
                                        assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist4
+                                       var pvisibilitynode6 = nodearraylist2
                                        assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
+                                       var tkwvarnode7 = nodearraylist3
                                        assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist7
+                                       var tidnode9 = nodearraylist4
+                                       assert tidnode9 isa nullable TId
+                                       var ptypenode10 = nodearraylist5
                                        assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               pablenode3,
+                                               null,
                                                pablenode4,
                                                null,
                                                pvisibilitynode6,
                                                tkwvarnode7,
-                                               tattridnode8,
                                                null,
+                                               tidnode9,
                                                ptypenode10,
                                                null,
-                                               pexprnode12
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction220
+private class ReduceAction420
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -10614,44 +18864,41 @@ private class ReduceAction220
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pablenode4 = nodearraylist3
+                                       var pablenode4 = nodearraylist7
                                        assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist4
+                                       var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist5
+                                       var pvisibilitynode6 = nodearraylist3
                                        assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist6
+                                       var tkwvarnode7 = nodearraylist4
                                        assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist7
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist8
+                                       var tidnode9 = nodearraylist5
+                                       assert tidnode9 isa nullable TId
+                                       var ptypenode10 = nodearraylist6
                                        assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist11
-                                       assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               pablenode3,
+                                               null,
                                                pablenode4,
                                                tkwredefnode5,
                                                pvisibilitynode6,
                                                tkwvarnode7,
-                                               tattridnode8,
                                                null,
+                                               tidnode9,
                                                ptypenode10,
                                                null,
-                                               pexprnode12
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction221
+private class ReduceAction421
        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
@@ -10664,6 +18911,8 @@ private class ReduceAction221
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tidnode9 = nodearraylist4
                                        assert tidnode9 isa nullable TId
+                                       var pannotationsnode11 = nodearraylist5
+                                       assert pannotationsnode11 isa nullable AAnnotations
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -10674,18 +18923,19 @@ private class ReduceAction221
                                                null,
                                                tidnode9,
                                                null,
-                                               null,
+                                               pannotationsnode11,
                                                null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction222
+private class ReduceAction422
        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
@@ -10701,6 +18951,8 @@ private class ReduceAction222
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tidnode9 = nodearraylist5
                                        assert tidnode9 isa nullable TId
+                                       var pannotationsnode11 = nodearraylist6
+                                       assert pannotationsnode11 isa nullable AAnnotations
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -10711,18 +18963,19 @@ private class ReduceAction222
                                                null,
                                                tidnode9,
                                                null,
-                                               null,
+                                               pannotationsnode11,
                                                null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction223
+private class ReduceAction423
        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
@@ -10738,6 +18991,8 @@ private class ReduceAction223
                                        assert tidnode9 isa nullable TId
                                        var ptypenode10 = nodearraylist5
                                        assert ptypenode10 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist6
+                                       assert pannotationsnode11 isa nullable AAnnotations
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -10748,18 +19003,19 @@ private class ReduceAction223
                                                null,
                                                tidnode9,
                                                ptypenode10,
-                                               null,
+                                               pannotationsnode11,
                                                null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction224
+private class ReduceAction424
        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
@@ -10778,6 +19034,8 @@ private class ReduceAction224
                                        assert tidnode9 isa nullable TId
                                        var ptypenode10 = nodearraylist6
                                        assert ptypenode10 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -10788,18 +19046,19 @@ private class ReduceAction224
                                                null,
                                                tidnode9,
                                                ptypenode10,
-                                               null,
+                                               pannotationsnode11,
                                                null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction225
+private class ReduceAction425
        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
@@ -10815,6 +19074,8 @@ private class ReduceAction225
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tidnode9 = nodearraylist4
                                        assert tidnode9 isa nullable TId
+                                       var pannotationsnode11 = nodearraylist6
+                                       assert pannotationsnode11 isa nullable AAnnotations
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -10825,18 +19086,19 @@ private class ReduceAction225
                                                null,
                                                tidnode9,
                                                null,
-                                               null,
+                                               pannotationsnode11,
                                                null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction226
+private class ReduceAction426
        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
@@ -10855,6 +19117,8 @@ private class ReduceAction226
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tidnode9 = nodearraylist5
                                        assert tidnode9 isa nullable TId
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -10865,18 +19129,19 @@ private class ReduceAction226
                                                null,
                                                tidnode9,
                                                null,
-                                               null,
+                                               pannotationsnode11,
                                                null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction227
+private class ReduceAction427
        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
@@ -10895,6 +19160,8 @@ private class ReduceAction227
                                        assert tidnode9 isa nullable TId
                                        var ptypenode10 = nodearraylist5
                                        assert ptypenode10 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -10905,18 +19172,19 @@ private class ReduceAction227
                                                null,
                                                tidnode9,
                                                ptypenode10,
-                                               null,
+                                               pannotationsnode11,
                                                null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction228
+private class ReduceAction428
        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
@@ -10938,6 +19206,8 @@ private class ReduceAction228
                                        assert tidnode9 isa nullable TId
                                        var ptypenode10 = nodearraylist6
                                        assert ptypenode10 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist8
+                                       assert pannotationsnode11 isa nullable AAnnotations
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -10948,18 +19218,20 @@ private class ReduceAction228
                                                null,
                                                tidnode9,
                                                ptypenode10,
-                                               null,
+                                               pannotationsnode11,
                                                null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction229
+private class ReduceAction429
        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
@@ -10973,8 +19245,8 @@ private class ReduceAction229
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tidnode9 = nodearraylist4
                                        assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist5
-                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pexprnode12 = nodearraylist7
+                                       assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -10985,18 +19257,20 @@ private class ReduceAction229
                                                null,
                                                tidnode9,
                                                null,
-                                               pannotationsnode11,
-                                               null
+                                               null,
+                                               pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction230
+private class ReduceAction430
        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
@@ -11013,8 +19287,8 @@ private class ReduceAction230
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tidnode9 = nodearraylist5
                                        assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist6
-                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pexprnode12 = nodearraylist8
+                                       assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -11025,18 +19299,20 @@ private class ReduceAction230
                                                null,
                                                tidnode9,
                                                null,
-                                               pannotationsnode11,
-                                               null
+                                               null,
+                                               pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction231
+private class ReduceAction431
        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
@@ -11053,8 +19329,8 @@ private class ReduceAction231
                                        assert tidnode9 isa nullable TId
                                        var ptypenode10 = nodearraylist5
                                        assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist6
-                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pexprnode12 = nodearraylist8
+                                       assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -11065,18 +19341,20 @@ private class ReduceAction231
                                                null,
                                                tidnode9,
                                                ptypenode10,
-                                               pannotationsnode11,
-                                               null
+                                               null,
+                                               pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction232
+private class ReduceAction432
        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
@@ -11096,8 +19374,8 @@ private class ReduceAction232
                                        assert tidnode9 isa nullable TId
                                        var ptypenode10 = nodearraylist6
                                        assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist7
-                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pexprnode12 = nodearraylist9
+                                       assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -11108,18 +19386,20 @@ private class ReduceAction232
                                                null,
                                                tidnode9,
                                                ptypenode10,
-                                               pannotationsnode11,
-                                               null
+                                               null,
+                                               pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction233
+private class ReduceAction433
        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
@@ -11136,8 +19416,8 @@ private class ReduceAction233
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tidnode9 = nodearraylist4
                                        assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist6
-                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pexprnode12 = nodearraylist8
+                                       assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -11148,18 +19428,20 @@ private class ReduceAction233
                                                null,
                                                tidnode9,
                                                null,
-                                               pannotationsnode11,
-                                               null
+                                               null,
+                                               pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction234
+private class ReduceAction434
        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
@@ -11179,8 +19461,8 @@ private class ReduceAction234
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tidnode9 = nodearraylist5
                                        assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist7
-                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pexprnode12 = nodearraylist9
+                                       assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -11191,18 +19473,20 @@ private class ReduceAction234
                                                null,
                                                tidnode9,
                                                null,
-                                               pannotationsnode11,
-                                               null
+                                               null,
+                                               pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction235
+private class ReduceAction435
        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
@@ -11222,8 +19506,8 @@ private class ReduceAction235
                                        assert tidnode9 isa nullable TId
                                        var ptypenode10 = nodearraylist5
                                        assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist7
-                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pexprnode12 = nodearraylist9
+                                       assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -11234,18 +19518,20 @@ private class ReduceAction235
                                                null,
                                                tidnode9,
                                                ptypenode10,
-                                               pannotationsnode11,
-                                               null
+                                               null,
+                                               pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction236
+private class ReduceAction436
        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
@@ -11268,8 +19554,8 @@ private class ReduceAction236
                                        assert tidnode9 isa nullable TId
                                        var ptypenode10 = nodearraylist6
                                        assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist8
-                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pexprnode12 = nodearraylist10
+                                       assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -11280,18 +19566,19 @@ private class ReduceAction236
                                                null,
                                                tidnode9,
                                                ptypenode10,
-                                               pannotationsnode11,
-                                               null
+                                               null,
+                                               pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction237
+private class ReduceAction437
        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
@@ -11307,6 +19594,8 @@ private class ReduceAction237
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tidnode9 = nodearraylist4
                                        assert tidnode9 isa nullable TId
+                                       var pannotationsnode11 = nodearraylist8
+                                       assert pannotationsnode11 isa nullable AAnnotations
                                        var pexprnode12 = nodearraylist7
                                        assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
@@ -11319,18 +19608,19 @@ private class ReduceAction237
                                                null,
                                                tidnode9,
                                                null,
-                                               null,
+                                               pannotationsnode11,
                                                pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction238
+private class ReduceAction438
        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
@@ -11349,6 +19639,8 @@ private class ReduceAction238
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tidnode9 = nodearraylist5
                                        assert tidnode9 isa nullable TId
+                                       var pannotationsnode11 = nodearraylist9
+                                       assert pannotationsnode11 isa nullable AAnnotations
                                        var pexprnode12 = nodearraylist8
                                        assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
@@ -11361,18 +19653,19 @@ private class ReduceAction238
                                                null,
                                                tidnode9,
                                                null,
-                                               null,
+                                               pannotationsnode11,
                                                pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction239
+private class ReduceAction439
        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
@@ -11391,6 +19684,8 @@ private class ReduceAction239
                                        assert tidnode9 isa nullable TId
                                        var ptypenode10 = nodearraylist5
                                        assert ptypenode10 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist9
+                                       assert pannotationsnode11 isa nullable AAnnotations
                                        var pexprnode12 = nodearraylist8
                                        assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
@@ -11403,18 +19698,19 @@ private class ReduceAction239
                                                null,
                                                tidnode9,
                                                ptypenode10,
-                                               null,
+                                               pannotationsnode11,
                                                pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction240
+private class ReduceAction440
        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
@@ -11436,6 +19732,8 @@ private class ReduceAction240
                                        assert tidnode9 isa nullable TId
                                        var ptypenode10 = nodearraylist6
                                        assert ptypenode10 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist10
+                                       assert pannotationsnode11 isa nullable AAnnotations
                                        var pexprnode12 = nodearraylist9
                                        assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
@@ -11448,18 +19746,19 @@ private class ReduceAction240
                                                null,
                                                tidnode9,
                                                ptypenode10,
-                                               null,
+                                               pannotationsnode11,
                                                pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction241
+private class ReduceAction441
        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
@@ -11478,6 +19777,8 @@ private class ReduceAction241
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tidnode9 = nodearraylist4
                                        assert tidnode9 isa nullable TId
+                                       var pannotationsnode11 = nodearraylist9
+                                       assert pannotationsnode11 isa nullable AAnnotations
                                        var pexprnode12 = nodearraylist8
                                        assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
@@ -11490,18 +19791,19 @@ private class ReduceAction241
                                                null,
                                                tidnode9,
                                                null,
-                                               null,
+                                               pannotationsnode11,
                                                pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction242
+private class ReduceAction442
        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
@@ -11523,6 +19825,8 @@ private class ReduceAction242
                                        assert tkwvarnode7 isa nullable TKwvar
                                        var tidnode9 = nodearraylist5
                                        assert tidnode9 isa nullable TId
+                                       var pannotationsnode11 = nodearraylist10
+                                       assert pannotationsnode11 isa nullable AAnnotations
                                        var pexprnode12 = nodearraylist9
                                        assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
@@ -11535,18 +19839,19 @@ private class ReduceAction242
                                                null,
                                                tidnode9,
                                                null,
-                                               null,
+                                               pannotationsnode11,
                                                pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction243
+private class ReduceAction443
        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
@@ -11568,6 +19873,8 @@ private class ReduceAction243
                                        assert tidnode9 isa nullable TId
                                        var ptypenode10 = nodearraylist5
                                        assert ptypenode10 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist10
+                                       assert pannotationsnode11 isa nullable AAnnotations
                                        var pexprnode12 = nodearraylist9
                                        assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
@@ -11580,18 +19887,19 @@ private class ReduceAction243
                                                null,
                                                tidnode9,
                                                ptypenode10,
-                                               null,
+                                               pannotationsnode11,
                                                pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction244
+private class ReduceAction444
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -11616,6 +19924,8 @@ private class ReduceAction244
                                        assert tidnode9 isa nullable TId
                                        var ptypenode10 = nodearraylist6
                                        assert ptypenode10 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist11
+                                       assert pannotationsnode11 isa nullable AAnnotations
                                        var pexprnode12 = nodearraylist10
                                        assert pexprnode12 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
@@ -11628,20 +19938,18 @@ private class ReduceAction244
                                                null,
                                                tidnode9,
                                                ptypenode10,
-                                               null,
+                                               pannotationsnode11,
                                                pexprnode12
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction245
+private class ReduceAction445
        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
@@ -11650,40 +19958,71 @@ private class ReduceAction245
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist8
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist7
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwinitnode5 = nodearraylist3
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var psignaturenode7 = nodearraylist4
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode9 = nodearraylist6
+                                       assert pexprnode9 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                null,
+                                               pvisibilitynode4,
+                                               tkwinitnode5,
                                                null,
+                                               psignaturenode7,
                                                null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
+                                               pexprnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction446
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwinitnode5 = nodearraylist4
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode9 = nodearraylist7
+                                       assert pexprnode9 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwinitnode5,
                                                null,
-                                               tidnode9,
+                                               psignaturenode7,
                                                null,
-                                               pannotationsnode11,
-                                               pexprnode12
+                                               pexprnode9
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction246
+private class ReduceAction447
        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
@@ -11693,41 +20032,114 @@ private class ReduceAction246
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist9
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwinitnode5 = nodearraylist3
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode9 = nodearraylist7
+                                       assert pexprnode9 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                null,
+                                               pvisibilitynode4,
+                                               tkwinitnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
                                                null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
+                                               pexprnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction448
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwinitnode5 = nodearraylist4
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode9 = nodearraylist8
+                                       assert pexprnode9 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwinitnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
                                                null,
-                                               tidnode9,
+                                               pexprnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction449
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwinitnode5 = nodearraylist3
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var psignaturenode7 = nodearraylist4
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pannotationsnode8 = nodearraylist5
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pexprnode9 = nodearraylist7
+                                       assert pexprnode9 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                               pdocnode2,
                                                null,
-                                               pannotationsnode11,
-                                               pexprnode12
+                                               pvisibilitynode4,
+                                               tkwinitnode5,
+                                               null,
+                                               psignaturenode7,
+                                               pannotationsnode8,
+                                               pexprnode9
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction247
+private class ReduceAction450
        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
@@ -11738,41 +20150,78 @@ private class ReduceAction247
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist9
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwinitnode5 = nodearraylist4
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pannotationsnode8 = nodearraylist6
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pexprnode9 = nodearraylist8
+                                       assert pexprnode9 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwinitnode5,
+                                               null,
+                                               psignaturenode7,
+                                               pannotationsnode8,
+                                               pexprnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction451
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwinitnode5 = nodearraylist3
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pannotationsnode8 = nodearraylist6
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pexprnode9 = nodearraylist8
+                                       assert pexprnode9 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               pexprnode12
+                                               pvisibilitynode4,
+                                               tkwinitnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pannotationsnode8,
+                                               pexprnode9
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction248
+private class ReduceAction452
        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
@@ -11784,44 +20233,39 @@ private class ReduceAction248
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist10
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwinitnode5 = nodearraylist4
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pannotationsnode8 = nodearraylist7
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pexprnode9 = nodearraylist9
+                                       assert pexprnode9 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               pexprnode12
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwinitnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pannotationsnode8,
+                                               pexprnode9
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction249
+private class ReduceAction453
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -11831,42 +20275,33 @@ private class ReduceAction249
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist5
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist9
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwinitnode5 = nodearraylist3
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var psignaturenode7 = nodearraylist4
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode9 = nodearraylist6
+                                       assert pexprnode9 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
+                                               pvisibilitynode4,
+                                               tkwinitnode5,
                                                null,
-                                               tidnode9,
+                                               psignaturenode7,
                                                null,
-                                               pannotationsnode11,
-                                               pexprnode12
+                                               pexprnode9
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction250
+private class ReduceAction454
        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
@@ -11877,44 +20312,35 @@ private class ReduceAction250
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist6
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist10
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwinitnode5 = nodearraylist4
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode9 = nodearraylist7
+                                       assert pexprnode9 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwinitnode5,
                                                null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
+                                               psignaturenode7,
                                                null,
-                                               pannotationsnode11,
-                                               pexprnode12
+                                               pexprnode9
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction251
+private class ReduceAction455
        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
@@ -11925,44 +20351,35 @@ private class ReduceAction251
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist6
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist10
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwinitnode5 = nodearraylist3
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode9 = nodearraylist7
+                                       assert pexprnode9 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
+                                               pvisibilitynode4,
+                                               tkwinitnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
                                                null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               pexprnode12
+                                               pexprnode9
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction252
+private class ReduceAction456
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -11974,44 +20391,39 @@ private class ReduceAction252
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist7
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist11
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwinitnode5 = nodearraylist4
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode9 = nodearraylist8
+                                       assert pexprnode9 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               pexprnode12
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwinitnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null,
+                                               pexprnode9
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction253
+private class ReduceAction457
        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
@@ -12026,7 +20438,9 @@ private class ReduceAction253
                                        assert tkwinitnode5 isa nullable TKwinit
                                        var psignaturenode7 = nodearraylist4
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist6
+                                       var pannotationsnode8 = nodearraylist5
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pexprnode9 = nodearraylist7
                                        assert pexprnode9 isa nullable AExpr
                                        var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
@@ -12035,18 +20449,20 @@ private class ReduceAction253
                                                tkwinitnode5,
                                                null,
                                                psignaturenode7,
-                                               null,
+                                               pannotationsnode8,
                                                pexprnode9
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction254
+private class ReduceAction458
        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
@@ -12064,7 +20480,9 @@ private class ReduceAction254
                                        assert tkwinitnode5 isa nullable TKwinit
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
+                                       var pannotationsnode8 = nodearraylist6
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pexprnode9 = nodearraylist8
                                        assert pexprnode9 isa nullable AExpr
                                        var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
@@ -12073,18 +20491,20 @@ private class ReduceAction254
                                                tkwinitnode5,
                                                null,
                                                psignaturenode7,
-                                               null,
+                                               pannotationsnode8,
                                                pexprnode9
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction255
+private class ReduceAction459
        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
@@ -12102,7 +20522,9 @@ private class ReduceAction255
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
+                                       var pannotationsnode8 = nodearraylist6
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pexprnode9 = nodearraylist8
                                        assert pexprnode9 isa nullable AExpr
                                        var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
@@ -12111,18 +20533,20 @@ private class ReduceAction255
                                                tkwinitnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               null,
+                                               pannotationsnode8,
                                                pexprnode9
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction256
+private class ReduceAction460
        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
@@ -12143,7 +20567,9 @@ private class ReduceAction256
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
+                                       var pannotationsnode8 = nodearraylist7
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pexprnode9 = nodearraylist9
                                        assert pexprnode9 isa nullable AExpr
                                        var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
@@ -12152,20 +20578,18 @@ private class ReduceAction256
                                                tkwinitnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               null,
+                                               pannotationsnode8,
                                                pexprnode9
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction257
+private class ReduceAction461
        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
@@ -12175,35 +20599,30 @@ private class ReduceAction257
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist5
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var tkwtypenode5 = nodearraylist3
+                                       assert tkwtypenode5 isa nullable TKwtype
+                                       var tclassidnode6 = nodearraylist4
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var ptypenode7 = nodearraylist5
+                                       assert ptypenode7 isa nullable AType
+                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
+                                               tkwtypenode5,
+                                               tclassidnode6,
+                                               ptypenode7,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction258
+private class ReduceAction462
        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
@@ -12216,35 +20635,30 @@ private class ReduceAction258
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var tkwtypenode5 = nodearraylist4
+                                       assert tkwtypenode5 isa nullable TKwtype
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
+                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
+                                               tkwtypenode5,
+                                               tclassidnode6,
+                                               ptypenode7,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction259
+private class ReduceAction463
        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
@@ -12255,37 +20669,32 @@ private class ReduceAction259
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
+                                       var tkwtypenode5 = nodearraylist3
+                                       assert tkwtypenode5 isa nullable TKwtype
+                                       var tclassidnode6 = nodearraylist4
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var ptypenode7 = nodearraylist5
+                                       assert ptypenode7 isa nullable AType
                                        var pannotationsnode8 = nodearraylist6
                                        assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
+                                               tkwtypenode5,
+                                               tclassidnode6,
+                                               ptypenode7,
+                                               pannotationsnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction260
+private class ReduceAction464
        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
@@ -12299,36 +20708,32 @@ private class ReduceAction260
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
+                                       var tkwtypenode5 = nodearraylist4
+                                       assert tkwtypenode5 isa nullable TKwtype
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
                                        var pannotationsnode8 = nodearraylist7
                                        assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
+                                               tkwtypenode5,
+                                               tclassidnode6,
+                                               ptypenode7,
+                                               pannotationsnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction261
+private class ReduceAction465
        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
@@ -12339,32 +20744,30 @@ private class ReduceAction261
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var tkwnewnode5 = nodearraylist3
+                                       assert tkwnewnode5 isa nullable TKwnew
                                        var psignaturenode7 = nodearraylist4
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist6
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
+                                               tkwnewnode5,
                                                null,
                                                psignaturenode7,
                                                null,
-                                               pexprnode9
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction262
+private class ReduceAction466
        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
@@ -12378,32 +20781,30 @@ private class ReduceAction262
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var tkwnewnode5 = nodearraylist4
+                                       assert tkwnewnode5 isa nullable TKwnew
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
+                                               tkwnewnode5,
                                                null,
                                                psignaturenode7,
                                                null,
-                                               pexprnode9
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction263
+private class ReduceAction467
        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
@@ -12415,34 +20816,32 @@ private class ReduceAction263
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
+                                       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 pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
+                                               tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
                                                null,
-                                               pexprnode9
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction264
+private class ReduceAction468
        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
@@ -12457,34 +20856,32 @@ private class ReduceAction264
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
+                                       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 pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
+                                               tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
                                                null,
-                                               pexprnode9
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction265
+private class ReduceAction469
        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
@@ -12496,34 +20893,32 @@ private class ReduceAction265
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var tkwnewnode5 = nodearraylist3
+                                       assert tkwnewnode5 isa nullable TKwnew
                                        var psignaturenode7 = nodearraylist4
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist5
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var tstringnode8 = nodearraylist7
+                                       assert tstringnode8 isa nullable TString
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
+                                               tkwnewnode5,
                                                null,
                                                psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
+                                               tstringnode8,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction266
+private class ReduceAction470
        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
@@ -12538,34 +20933,32 @@ private class ReduceAction266
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var tkwnewnode5 = nodearraylist4
+                                       assert tkwnewnode5 isa nullable TKwnew
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var tstringnode8 = nodearraylist8
+                                       assert tstringnode8 isa nullable TString
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
+                                               tkwnewnode5,
                                                null,
                                                psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
+                                               tstringnode8,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction267
+private class ReduceAction471
        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
@@ -12578,36 +20971,34 @@ private class ReduceAction267
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
+                                       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 pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var tstringnode8 = nodearraylist8
+                                       assert tstringnode8 isa nullable TString
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
+                                               tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
+                                               tstringnode8,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction268
+private class ReduceAction472
        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
@@ -12623,35 +21014,36 @@ private class ReduceAction268
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
+                                       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 pannotationsnode8 = nodearraylist7
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var tstringnode8 = nodearraylist9
+                                       assert tstringnode8 isa nullable TString
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
+                                               tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
+                                               tstringnode8,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction269
+private class ReduceAction473
        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
@@ -12661,30 +21053,34 @@ private class ReduceAction269
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwtypenode5 = nodearraylist3
-                                       assert tkwtypenode5 isa nullable TKwtype
-                                       var tclassidnode6 = nodearraylist4
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var ptypenode7 = nodearraylist5
-                                       assert ptypenode7 isa nullable AType
-                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
+                                       var 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,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7,
+                                               tkwnewnode5,
+                                               null,
+                                               psignaturenode7,
+                                               null,
+                                               pexterncallsnode9,
                                                null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction270
+private class ReduceAction474
        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
@@ -12697,30 +21093,34 @@ private class ReduceAction270
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwtypenode5 = nodearraylist4
-                                       assert tkwtypenode5 isa nullable TKwtype
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var ptypenode7 = nodearraylist6
-                                       assert ptypenode7 isa nullable AType
-                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
+                                       var 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,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7,
+                                               tkwnewnode5,
+                                               null,
+                                               psignaturenode7,
+                                               null,
+                                               pexterncallsnode9,
                                                null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction271
+private class ReduceAction475
        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
@@ -12731,32 +21131,36 @@ private class ReduceAction271
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwtypenode5 = nodearraylist3
-                                       assert tkwtypenode5 isa nullable TKwtype
-                                       var tclassidnode6 = nodearraylist4
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var ptypenode7 = nodearraylist5
-                                       assert ptypenode7 isa nullable AType
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
+                                       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,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7,
-                                               pannotationsnode8
+                                               tkwnewnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null,
+                                               pexterncallsnode9,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction272
+private class ReduceAction476
        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
@@ -12770,32 +21174,36 @@ private class ReduceAction272
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwtypenode5 = nodearraylist4
-                                       assert tkwtypenode5 isa nullable TKwtype
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var ptypenode7 = nodearraylist6
-                                       assert ptypenode7 isa nullable AType
-                                       var pannotationsnode8 = nodearraylist7
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
+                                       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,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7,
-                                               pannotationsnode8
+                                               tkwnewnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null,
+                                               pexterncallsnode9,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction273
+private class ReduceAction477
        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
@@ -12810,6 +21218,10 @@ private class ReduceAction273
                                        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,
@@ -12817,19 +21229,21 @@ private class ReduceAction273
                                                tkwnewnode5,
                                                null,
                                                psignaturenode7,
-                                               null,
-                                               null,
+                                               tstringnode8,
+                                               pexterncallsnode9,
                                                null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction274
+private class ReduceAction478
        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
@@ -12847,6 +21261,10 @@ private class ReduceAction274
                                        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,
@@ -12854,19 +21272,21 @@ private class ReduceAction274
                                                tkwnewnode5,
                                                null,
                                                psignaturenode7,
-                                               null,
-                                               null,
+                                               tstringnode8,
+                                               pexterncallsnode9,
                                                null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction275
+private class ReduceAction479
        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
@@ -12884,6 +21304,10 @@ private class ReduceAction275
                                        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,
@@ -12891,19 +21315,21 @@ private class ReduceAction275
                                                tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               null,
-                                               null,
+                                               tstringnode8,
+                                               pexterncallsnode9,
                                                null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction276
+private class ReduceAction480
        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
@@ -12924,6 +21350,10 @@ private class ReduceAction276
                                        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,
@@ -12931,15 +21361,15 @@ private class ReduceAction276
                                                tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               null,
-                                               null,
+                                               tstringnode8,
+                                               pexterncallsnode9,
                                                null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction277
+private class ReduceAction481
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12959,8 +21389,8 @@ private class ReduceAction277
                                        assert tkwnewnode5 isa nullable TKwnew
                                        var psignaturenode7 = nodearraylist4
                                        assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist7
-                                       assert tstringnode8 isa nullable TString
+                                       var pexterncodeblocknode10 = nodearraylist7
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
                                                null,
@@ -12968,15 +21398,15 @@ private class ReduceAction277
                                                tkwnewnode5,
                                                null,
                                                psignaturenode7,
-                                               tstringnode8,
                                                null,
-                                               null
+                                               null,
+                                               pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction278
+private class ReduceAction482
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12999,8 +21429,8 @@ private class ReduceAction278
                                        assert tkwnewnode5 isa nullable TKwnew
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
+                                       var pexterncodeblocknode10 = nodearraylist8
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -13008,15 +21438,15 @@ private class ReduceAction278
                                                tkwnewnode5,
                                                null,
                                                psignaturenode7,
-                                               tstringnode8,
                                                null,
-                                               null
+                                               null,
+                                               pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction279
+private class ReduceAction483
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -13039,8 +21469,8 @@ private class ReduceAction279
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
+                                       var pexterncodeblocknode10 = nodearraylist8
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
                                                null,
@@ -13048,15 +21478,15 @@ private class ReduceAction279
                                                tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               tstringnode8,
                                                null,
-                                               null
+                                               null,
+                                               pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction280
+private class ReduceAction484
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -13082,8 +21512,8 @@ private class ReduceAction280
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa nullable TString
+                                       var pexterncodeblocknode10 = nodearraylist9
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -13091,19 +21521,20 @@ private class ReduceAction280
                                                tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               tstringnode8,
                                                null,
-                                               null
+                                               null,
+                                               pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction281
+private class ReduceAction485
        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
@@ -13119,8 +21550,10 @@ private class ReduceAction281
                                        assert tkwnewnode5 isa nullable TKwnew
                                        var psignaturenode7 = nodearraylist4
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist7
-                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var tstringnode8 = nodearraylist7
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncodeblocknode10 = nodearraylist8
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
                                                null,
@@ -13128,19 +21561,20 @@ private class ReduceAction281
                                                tkwnewnode5,
                                                null,
                                                psignaturenode7,
+                                               tstringnode8,
                                                null,
-                                               pexterncallsnode9,
-                                               null
+                                               pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction282
+private class ReduceAction486
        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
@@ -13159,8 +21593,10 @@ private class ReduceAction282
                                        assert tkwnewnode5 isa nullable TKwnew
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var tstringnode8 = nodearraylist8
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncodeblocknode10 = nodearraylist9
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -13168,19 +21604,20 @@ private class ReduceAction282
                                                tkwnewnode5,
                                                null,
                                                psignaturenode7,
+                                               tstringnode8,
                                                null,
-                                               pexterncallsnode9,
-                                               null
+                                               pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction283
+private class ReduceAction487
        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
@@ -13199,8 +21636,10 @@ private class ReduceAction283
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var tstringnode8 = nodearraylist8
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncodeblocknode10 = nodearraylist9
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
                                                null,
@@ -13208,19 +21647,20 @@ private class ReduceAction283
                                                tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
+                                               tstringnode8,
                                                null,
-                                               pexterncallsnode9,
-                                               null
+                                               pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction284
+private class ReduceAction488
        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
@@ -13242,8 +21682,10 @@ private class ReduceAction284
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var tstringnode8 = nodearraylist9
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncodeblocknode10 = nodearraylist10
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -13251,15 +21693,15 @@ private class ReduceAction284
                                                tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
+                                               tstringnode8,
                                                null,
-                                               pexterncallsnode9,
-                                               null
+                                               pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction285
+private class ReduceAction489
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -13280,10 +21722,10 @@ private class ReduceAction285
                                        assert tkwnewnode5 isa nullable TKwnew
                                        var psignaturenode7 = nodearraylist4
                                        assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist7
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist8
+                                       var pexterncallsnode9 = nodearraylist7
                                        assert pexterncallsnode9 isa nullable AExternCalls
+                                       var pexterncodeblocknode10 = nodearraylist8
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
                                                null,
@@ -13291,15 +21733,15 @@ private class ReduceAction285
                                                tkwnewnode5,
                                                null,
                                                psignaturenode7,
-                                               tstringnode8,
+                                               null,
                                                pexterncallsnode9,
-                                               null
+                                               pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction286
+private class ReduceAction490
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -13323,10 +21765,10 @@ private class ReduceAction286
                                        assert tkwnewnode5 isa nullable TKwnew
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist9
+                                       var pexterncallsnode9 = nodearraylist8
                                        assert pexterncallsnode9 isa nullable AExternCalls
+                                       var pexterncodeblocknode10 = nodearraylist9
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -13334,15 +21776,15 @@ private class ReduceAction286
                                                tkwnewnode5,
                                                null,
                                                psignaturenode7,
-                                               tstringnode8,
+                                               null,
                                                pexterncallsnode9,
-                                               null
+                                               pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction287
+private class ReduceAction491
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -13366,10 +21808,10 @@ private class ReduceAction287
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist9
+                                       var pexterncallsnode9 = nodearraylist8
                                        assert pexterncallsnode9 isa nullable AExternCalls
+                                       var pexterncodeblocknode10 = nodearraylist9
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
                                                null,
@@ -13377,15 +21819,15 @@ private class ReduceAction287
                                                tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               tstringnode8,
+                                               null,
                                                pexterncallsnode9,
-                                               null
+                                               pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction288
+private class ReduceAction492
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -13412,10 +21854,10 @@ private class ReduceAction288
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist10
+                                       var pexterncallsnode9 = nodearraylist9
                                        assert pexterncallsnode9 isa nullable AExternCalls
+                                       var pexterncodeblocknode10 = nodearraylist10
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -13423,19 +21865,21 @@ private class ReduceAction288
                                                tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               tstringnode8,
+                                               null,
                                                pexterncallsnode9,
-                                               null
+                                               pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction289
+private class ReduceAction493
        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
@@ -13451,7 +21895,11 @@ private class ReduceAction289
                                        assert tkwnewnode5 isa nullable TKwnew
                                        var psignaturenode7 = nodearraylist4
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist7
+                                       var tstringnode8 = nodearraylist7
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncallsnode9 = nodearraylist8
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var pexterncodeblocknode10 = nodearraylist9
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
@@ -13460,19 +21908,21 @@ private class ReduceAction289
                                                tkwnewnode5,
                                                null,
                                                psignaturenode7,
-                                               null,
-                                               null,
+                                               tstringnode8,
+                                               pexterncallsnode9,
                                                pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction290
+private class ReduceAction494
        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
@@ -13491,7 +21941,11 @@ private class ReduceAction290
                                        assert tkwnewnode5 isa nullable TKwnew
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist8
+                                       var tstringnode8 = nodearraylist8
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncallsnode9 = nodearraylist9
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var pexterncodeblocknode10 = nodearraylist10
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
@@ -13500,19 +21954,21 @@ private class ReduceAction290
                                                tkwnewnode5,
                                                null,
                                                psignaturenode7,
-                                               null,
-                                               null,
+                                               tstringnode8,
+                                               pexterncallsnode9,
                                                pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction291
+private class ReduceAction495
        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
@@ -13531,7 +21987,11 @@ private class ReduceAction291
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist8
+                                       var tstringnode8 = nodearraylist8
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncallsnode9 = nodearraylist9
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var pexterncodeblocknode10 = nodearraylist10
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
@@ -13540,19 +22000,21 @@ private class ReduceAction291
                                                tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               null,
-                                               null,
+                                               tstringnode8,
+                                               pexterncallsnode9,
                                                pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction292
+private class ReduceAction496
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -13574,7 +22036,11 @@ private class ReduceAction292
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist9
+                                       var tstringnode8 = nodearraylist9
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncallsnode9 = nodearraylist10
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var pexterncodeblocknode10 = nodearraylist11
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
@@ -13583,22 +22049,19 @@ private class ReduceAction292
                                                tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               null,
-                                               null,
+                                               tstringnode8,
+                                               pexterncallsnode9,
                                                pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction293
+private class ReduceAction497
        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
@@ -13612,9 +22075,7 @@ private class ReduceAction293
                                        assert tkwnewnode5 isa nullable TKwnew
                                        var psignaturenode7 = nodearraylist4
                                        assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist7
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist8
+                                       var pexterncodeblocknode10 = nodearraylist5
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
@@ -13623,7 +22084,7 @@ private class ReduceAction293
                                                tkwnewnode5,
                                                null,
                                                psignaturenode7,
-                                               tstringnode8,
+                                               null,
                                                null,
                                                pexterncodeblocknode10
                                        )
@@ -13631,14 +22092,11 @@ private class ReduceAction293
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction294
+private class ReduceAction498
        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
@@ -13655,9 +22113,7 @@ private class ReduceAction294
                                        assert tkwnewnode5 isa nullable TKwnew
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist9
+                                       var pexterncodeblocknode10 = nodearraylist6
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
@@ -13666,7 +22122,7 @@ private class ReduceAction294
                                                tkwnewnode5,
                                                null,
                                                psignaturenode7,
-                                               tstringnode8,
+                                               null,
                                                null,
                                                pexterncodeblocknode10
                                        )
@@ -13674,14 +22130,11 @@ private class ReduceAction294
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction295
+private class ReduceAction499
        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
@@ -13698,9 +22151,7 @@ private class ReduceAction295
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist9
+                                       var pexterncodeblocknode10 = nodearraylist6
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
@@ -13709,7 +22160,7 @@ private class ReduceAction295
                                                tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               tstringnode8,
+                                               null,
                                                null,
                                                pexterncodeblocknode10
                                        )
@@ -13717,14 +22168,11 @@ private class ReduceAction295
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction296
+private class ReduceAction500
        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
@@ -13744,9 +22192,7 @@ private class ReduceAction296
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist10
+                                       var pexterncodeblocknode10 = nodearraylist7
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
@@ -13755,7 +22201,7 @@ private class ReduceAction296
                                                tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               tstringnode8,
+                                               null,
                                                null,
                                                pexterncodeblocknode10
                                        )
@@ -13763,13 +22209,11 @@ private class ReduceAction296
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction297
+private class ReduceAction501
        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
@@ -13784,9 +22228,9 @@ private class ReduceAction297
                                        assert tkwnewnode5 isa nullable TKwnew
                                        var psignaturenode7 = nodearraylist4
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist7
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist8
+                                       var tstringnode8 = nodearraylist5
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncodeblocknode10 = nodearraylist6
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
@@ -13795,21 +22239,19 @@ private class ReduceAction297
                                                tkwnewnode5,
                                                null,
                                                psignaturenode7,
+                                               tstringnode8,
                                                null,
-                                               pexterncallsnode9,
                                                pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction298
+private class ReduceAction502
        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
@@ -13827,9 +22269,9 @@ private class ReduceAction298
                                        assert tkwnewnode5 isa nullable TKwnew
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist9
+                                       var tstringnode8 = nodearraylist6
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncodeblocknode10 = nodearraylist7
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
@@ -13838,21 +22280,19 @@ private class ReduceAction298
                                                tkwnewnode5,
                                                null,
                                                psignaturenode7,
+                                               tstringnode8,
                                                null,
-                                               pexterncallsnode9,
                                                pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction299
+private class ReduceAction503
        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
@@ -13870,9 +22310,9 @@ private class ReduceAction299
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist9
+                                       var tstringnode8 = nodearraylist6
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncodeblocknode10 = nodearraylist7
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
@@ -13881,21 +22321,19 @@ private class ReduceAction299
                                                tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
+                                               tstringnode8,
                                                null,
-                                               pexterncallsnode9,
                                                pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction300
+private class ReduceAction504
        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
@@ -13916,9 +22354,9 @@ private class ReduceAction300
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist10
+                                       var tstringnode8 = nodearraylist7
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncodeblocknode10 = nodearraylist8
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
@@ -13927,22 +22365,19 @@ private class ReduceAction300
                                                tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
+                                               tstringnode8,
                                                null,
-                                               pexterncallsnode9,
                                                pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction301
+private class ReduceAction505
        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
@@ -13957,11 +22392,9 @@ private class ReduceAction301
                                        assert tkwnewnode5 isa nullable TKwnew
                                        var psignaturenode7 = nodearraylist4
                                        assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist7
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist8
+                                       var pexterncallsnode9 = nodearraylist5
                                        assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist9
+                                       var pexterncodeblocknode10 = nodearraylist6
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
@@ -13970,7 +22403,7 @@ private class ReduceAction301
                                                tkwnewnode5,
                                                null,
                                                psignaturenode7,
-                                               tstringnode8,
+                                               null,
                                                pexterncallsnode9,
                                                pexterncodeblocknode10
                                        )
@@ -13978,14 +22411,11 @@ private class ReduceAction301
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction302
+private class ReduceAction506
        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
@@ -14003,11 +22433,9 @@ private class ReduceAction302
                                        assert tkwnewnode5 isa nullable TKwnew
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist9
+                                       var pexterncallsnode9 = nodearraylist6
                                        assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist10
+                                       var pexterncodeblocknode10 = nodearraylist7
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
@@ -14016,7 +22444,7 @@ private class ReduceAction302
                                                tkwnewnode5,
                                                null,
                                                psignaturenode7,
-                                               tstringnode8,
+                                               null,
                                                pexterncallsnode9,
                                                pexterncodeblocknode10
                                        )
@@ -14024,14 +22452,11 @@ private class ReduceAction302
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction303
+private class ReduceAction507
        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
@@ -14049,11 +22474,9 @@ private class ReduceAction303
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist9
+                                       var pexterncallsnode9 = nodearraylist6
                                        assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist10
+                                       var pexterncodeblocknode10 = nodearraylist7
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
@@ -14062,7 +22485,7 @@ private class ReduceAction303
                                                tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               tstringnode8,
+                                               null,
                                                pexterncallsnode9,
                                                pexterncodeblocknode10
                                        )
@@ -14070,14 +22493,11 @@ private class ReduceAction303
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction304
+private class ReduceAction508
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -14098,11 +22518,9 @@ private class ReduceAction304
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist10
+                                       var pexterncallsnode9 = nodearraylist7
                                        assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist11
+                                       var pexterncodeblocknode10 = nodearraylist8
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
@@ -14111,7 +22529,7 @@ private class ReduceAction304
                                                tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               tstringnode8,
+                                               null,
                                                pexterncallsnode9,
                                                pexterncodeblocknode10
                                        )
@@ -14119,11 +22537,13 @@ private class ReduceAction304
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction305
+private class ReduceAction509
        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
@@ -14137,7 +22557,11 @@ private class ReduceAction305
                                        assert tkwnewnode5 isa nullable TKwnew
                                        var psignaturenode7 = nodearraylist4
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist5
+                                       var tstringnode8 = nodearraylist5
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncallsnode9 = nodearraylist6
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var pexterncodeblocknode10 = nodearraylist7
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
@@ -14146,19 +22570,21 @@ private class ReduceAction305
                                                tkwnewnode5,
                                                null,
                                                psignaturenode7,
-                                               null,
-                                               null,
+                                               tstringnode8,
+                                               pexterncallsnode9,
                                                pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction306
+private class ReduceAction510
        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
@@ -14175,7 +22601,11 @@ private class ReduceAction306
                                        assert tkwnewnode5 isa nullable TKwnew
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist6
+                                       var tstringnode8 = nodearraylist6
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncallsnode9 = nodearraylist7
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var pexterncodeblocknode10 = nodearraylist8
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
@@ -14184,19 +22614,21 @@ private class ReduceAction306
                                                tkwnewnode5,
                                                null,
                                                psignaturenode7,
-                                               null,
-                                               null,
+                                               tstringnode8,
+                                               pexterncallsnode9,
                                                pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction307
+private class ReduceAction511
        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
@@ -14213,7 +22645,11 @@ private class ReduceAction307
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist6
+                                       var tstringnode8 = nodearraylist6
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncallsnode9 = nodearraylist7
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var pexterncodeblocknode10 = nodearraylist8
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
@@ -14222,19 +22658,21 @@ private class ReduceAction307
                                                tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               null,
-                                               null,
+                                               tstringnode8,
+                                               pexterncallsnode9,
                                                pexterncodeblocknode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction308
+private class ReduceAction512
        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
@@ -14254,7 +22692,11 @@ private class ReduceAction308
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist7
+                                       var tstringnode8 = nodearraylist7
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncallsnode9 = nodearraylist8
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var pexterncodeblocknode10 = nodearraylist9
                                        assert pexterncodeblocknode10 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
                                                pdocnode2,
@@ -14263,975 +22705,1075 @@ private class ReduceAction308
                                                tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7,
+                                               tstringnode8,
+                                               pexterncallsnode9,
+                                               pexterncodeblocknode10
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction513
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pannotationsnode1 = nodearraylist2
+                                       node_list = pannotationsnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction514
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pannotationsnode1 = nodearraylist3
+                                       node_list = pannotationsnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction516
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pannotationsnode1 = nodearraylist3
+                                       node_list = pannotationsnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction517
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var 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 ReduceAction518
+       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 ReduceAction519
+       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,
-                                               pexterncodeblocknode10
+                                               tkwwritablenode4
+                                       )
+                                       node_list = pablenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction520
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var 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 ReduceAction521
+       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 ReduceAction522
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwredefnode2 = nodearraylist1
+                                       assert tkwredefnode2 isa nullable TKwredef
+                                       var pvisibilitynode3 = nodearraylist2
+                                       assert pvisibilitynode3 isa nullable AVisibility
+                                       var tkwwritablenode4 = nodearraylist3
+                                       assert tkwwritablenode4 isa nullable TKwwritable
+                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
+                                               tkwredefnode2,
+                                               pvisibilitynode3,
+                                               tkwwritablenode4
+                                       )
+                                       node_list = pablenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction523
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var pvisibilitynode1: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility
+                                       node_list = pvisibilitynode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction524
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwprivatenode2 = nodearraylist1
+                                       assert tkwprivatenode2 isa nullable TKwprivate
+                                       var pvisibilitynode1: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pvisibilitynode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction309
+private class ReduceAction525
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist5
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist6
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               pexterncodeblocknode10
+                                       var tkwprotectednode2 = nodearraylist1
+                                       assert tkwprotectednode2 isa nullable TKwprotected
+                                       var pvisibilitynode1: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pvisibilitynode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction310
+private class ReduceAction526
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist6
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               pexterncodeblocknode10
+                                       var tkwintrudenode2 = nodearraylist1
+                                       assert tkwintrudenode2 isa nullable TKwintrude
+                                       var pvisibilitynode1: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pvisibilitynode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction311
+private class ReduceAction527
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist6
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               pexterncodeblocknode10
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var pmethidnode1: nullable AIdMethid = new AIdMethid.init_aidmethid(
+                                               tidnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction312
+private class ReduceAction528
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist7
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               pexterncodeblocknode10
+                                       var tplusnode2 = nodearraylist1
+                                       assert tplusnode2 isa nullable TPlus
+                                       var pmethidnode1: nullable APlusMethid = new APlusMethid.init_aplusmethid(
+                                               tplusnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction313
+private class ReduceAction529
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist5
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist6
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var tminusnode2 = nodearraylist1
+                                       assert tminusnode2 isa nullable TMinus
+                                       var pmethidnode1: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
+                                               tminusnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction314
+private class ReduceAction530
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist6
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var tstarnode2 = nodearraylist1
+                                       assert tstarnode2 isa nullable TStar
+                                       var pmethidnode1: nullable AStarMethid = new AStarMethid.init_astarmethid(
+                                               tstarnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction315
+private class ReduceAction531
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist6
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var tslashnode2 = nodearraylist1
+                                       assert tslashnode2 isa nullable TSlash
+                                       var pmethidnode1: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
+                                               tslashnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction316
+private class ReduceAction532
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist7
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var tpercentnode2 = nodearraylist1
+                                       assert tpercentnode2 isa nullable TPercent
+                                       var pmethidnode1: nullable APercentMethid = new APercentMethid.init_apercentmethid(
+                                               tpercentnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction317
+private class ReduceAction533
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist5
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist6
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var teqnode2 = nodearraylist1
+                                       assert teqnode2 isa nullable TEq
+                                       var pmethidnode1: nullable AEqMethid = new AEqMethid.init_aeqmethid(
+                                               teqnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction318
+private class ReduceAction534
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist6
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist7
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var tnenode2 = nodearraylist1
+                                       assert tnenode2 isa nullable TNe
+                                       var pmethidnode1: nullable ANeMethid = new ANeMethid.init_anemethid(
+                                               tnenode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction319
+private class ReduceAction535
        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 = nodearraylist6
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist7
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var tlenode2 = nodearraylist1
+                                       assert tlenode2 isa nullable TLe
+                                       var pmethidnode1: nullable ALeMethid = new ALeMethid.init_alemethid(
+                                               tlenode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction320
+private class ReduceAction536
        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 = nodearraylist7
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var tgenode2 = nodearraylist1
+                                       assert tgenode2 isa nullable TGe
+                                       var pmethidnode1: nullable AGeMethid = new AGeMethid.init_agemethid(
+                                               tgenode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction321
+private class ReduceAction537
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pannotationsnode1 = nodearraylist2
-                                       node_list = pannotationsnode1
+                                       var tltnode2 = nodearraylist1
+                                       assert tltnode2 isa nullable TLt
+                                       var pmethidnode1: nullable ALtMethid = new ALtMethid.init_altmethid(
+                                               tltnode2
+                                       )
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction322
+private class ReduceAction538
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pannotationsnode1 = nodearraylist3
-                                       node_list = pannotationsnode1
+                                       var tgtnode2 = nodearraylist1
+                                       assert tgtnode2 isa nullable TGt
+                                       var pmethidnode1: nullable AGtMethid = new AGtMethid.init_agtmethid(
+                                               tgtnode2
+                                       )
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction324
+private class ReduceAction539
        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 pannotationsnode1 = nodearraylist3
-                                       node_list = pannotationsnode1
+                                       var tllnode2 = nodearraylist1
+                                       assert tllnode2 isa nullable TLl
+                                       var pmethidnode1: nullable ALlMethid = new ALlMethid.init_allmethid(
+                                               tllnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction540
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tggnode2 = nodearraylist1
+                                       assert tggnode2 isa nullable TGg
+                                       var pmethidnode1: nullable AGgMethid = new AGgMethid.init_aggmethid(
+                                               tggnode2
+                                       )
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction325
+private class ReduceAction541
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwreadablenode3 = nodearraylist1
-                                       assert tkwreadablenode3 isa nullable TKwreadable
-                                       var pablenode1: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode3
+                                       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 = pablenode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction326
+private class ReduceAction542
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwredefnode2 = nodearraylist1
-                                       assert tkwredefnode2 isa nullable TKwredef
-                                       var tkwreadablenode3 = nodearraylist2
-                                       assert tkwreadablenode3 isa nullable TKwreadable
-                                       var pablenode1: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode2,
-                                               tkwreadablenode3
+                                       var tstarshipnode2 = nodearraylist1
+                                       assert tstarshipnode2 isa nullable TStarship
+                                       var pmethidnode1: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
+                                               tstarshipnode2
                                        )
-                                       node_list = pablenode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction327
+private class ReduceAction543
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwritablenode4 = nodearraylist1
-                                       assert tkwwritablenode4 isa nullable TKwwritable
-                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               null,
-                                               tkwwritablenode4
+                                       var 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 = pablenode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction328
+private class ReduceAction544
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwredefnode2 = nodearraylist1
-                                       assert tkwredefnode2 isa nullable TKwredef
-                                       var tkwwritablenode4 = nodearraylist2
-                                       assert tkwwritablenode4 isa nullable TKwwritable
-                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode2,
-                                               null,
-                                               tkwwritablenode4
+                                       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 = pablenode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction329
+private class ReduceAction545
        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 pvisibilitynode3 = nodearraylist1
-                                       assert pvisibilitynode3 isa nullable AVisibility
-                                       var tkwwritablenode4 = nodearraylist2
-                                       assert tkwwritablenode4 isa nullable TKwwritable
-                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               pvisibilitynode3,
-                                               tkwwritablenode4
+                                       var 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 = pablenode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction330
+private class ReduceAction546
        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 tkwredefnode2 = nodearraylist1
-                                       assert tkwredefnode2 isa nullable TKwredef
-                                       var pvisibilitynode3 = nodearraylist2
-                                       assert pvisibilitynode3 isa nullable AVisibility
-                                       var tkwwritablenode4 = nodearraylist3
-                                       assert tkwwritablenode4 isa nullable TKwwritable
-                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode2,
-                                               pvisibilitynode3,
-                                               tkwwritablenode4
+                                       var 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 = pablenode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction331
+private class ReduceAction547
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var pvisibilitynode1: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility
-                                       node_list = pvisibilitynode1
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var 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 = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction332
+private class ReduceAction548
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwprivatenode2 = nodearraylist1
-                                       assert tkwprivatenode2 isa nullable TKwprivate
-                                       var pvisibilitynode1: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
-                                               tkwprivatenode2
+                                       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 = pvisibilitynode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction333
+private class ReduceAction549
        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 tkwprotectednode2 = nodearraylist1
-                                       assert tkwprotectednode2 isa nullable TKwprotected
-                                       var pvisibilitynode1: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
-                                               tkwprotectednode2
+                                       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 = pvisibilitynode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction334
+private class ReduceAction550
        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 tkwintrudenode2 = nodearraylist1
-                                       assert tkwintrudenode2 isa nullable TKwintrude
-                                       var pvisibilitynode1: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
-                                               tkwintrudenode2
+                                       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 = pvisibilitynode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction335
+private class ReduceAction551
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var pmethidnode1: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode2
+                                       var listnode3 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
+                                       var tcparnode4 = nodearraylist3
+                                       assert tcparnode4 isa nullable TCpar
+                                       var listnode6 = nodearraylist5
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               toparnode2,
+                                               listnode3,
+                                               tcparnode4,
+                                               null,
+                                               listnode7
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction336
+private class ReduceAction552
        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 tplusnode2 = nodearraylist1
-                                       assert tplusnode2 isa nullable TPlus
-                                       var pmethidnode1: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode2
+                                       var listnode4 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tcparnode5 = nodearraylist4
+                                       assert tcparnode5 isa nullable TCpar
+                                       var listnode7 = nodearraylist6
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               toparnode2,
+                                               listnode4,
+                                               tcparnode5,
+                                               null,
+                                               listnode8
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction337
+private class ReduceAction553
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tminusnode2 = nodearraylist1
-                                       assert tminusnode2 isa nullable TMinus
-                                       var pmethidnode1: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode2
+                                       var listnode3 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var ptypenode5 = nodearraylist1
+                                       assert ptypenode5 isa nullable AType
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode3,
+                                               null,
+                                               ptypenode5,
+                                               listnode6
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction338
+private class ReduceAction554
        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 tstarnode2 = nodearraylist1
-                                       assert tstarnode2 isa nullable TStar
-                                       var pmethidnode1: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode2
+                                       var listnode3 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var ptypenode5 = nodearraylist1
+                                       assert ptypenode5 isa nullable AType
+                                       var listnode6 = nodearraylist3
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode3,
+                                               null,
+                                               ptypenode5,
+                                               listnode7
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction339
+private class ReduceAction555
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tslashnode2 = nodearraylist1
-                                       assert tslashnode2 isa nullable TSlash
-                                       var pmethidnode1: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode2
+                                       var listnode3 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode3,
+                                               null,
+                                               null,
+                                               listnode6
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction340
+private class ReduceAction556
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tpercentnode2 = nodearraylist1
-                                       assert tpercentnode2 isa nullable TPercent
-                                       var pmethidnode1: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode2
+                                       var listnode3 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist2
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode3,
+                                               null,
+                                               null,
+                                               listnode7
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction341
+private class ReduceAction557
        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 teqnode2 = nodearraylist1
-                                       assert teqnode2 isa nullable TEq
-                                       var pmethidnode1: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode2
+                                       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 ReduceAction342
+private class ReduceAction558
        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 tnenode2 = nodearraylist1
-                                       assert tnenode2 isa nullable TNe
-                                       var pmethidnode1: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode2
+                                       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 = pmethidnode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction343
+private class ReduceAction559
        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 tlenode2 = nodearraylist1
-                                       assert tlenode2 isa nullable TLe
-                                       var pmethidnode1: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode2
+                                       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 = pmethidnode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction344
+private class ReduceAction560
        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 tgenode2 = nodearraylist1
-                                       assert tgenode2 isa nullable TGe
-                                       var pmethidnode1: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode2
+                                       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 ReduceAction345
+private class ReduceAction561
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tltnode2 = nodearraylist1
-                                       assert tltnode2 isa nullable TLt
-                                       var pmethidnode1: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode2
+                                       var listnode3 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode3,
+                                               null,
+                                               null,
+                                               listnode6
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction346
+private class ReduceAction562
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tgtnode2 = nodearraylist1
-                                       assert tgtnode2 isa nullable TGt
-                                       var pmethidnode1: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode2
+                                       var listnode3 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var ptypenode5 = nodearraylist1
+                                       assert ptypenode5 isa nullable AType
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode3,
+                                               null,
+                                               ptypenode5,
+                                               listnode6
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction347
+private class ReduceAction563
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tllnode2 = nodearraylist1
-                                       assert tllnode2 isa nullable TLl
-                                       var pmethidnode1: nullable ALlMethid = new ALlMethid.init_allmethid(
-                                               tllnode2
-                                       )
-                                       node_list = pmethidnode1
+                                       var listnode2 = new Array[Object]
+                                       var pparamnode1 = nodearraylist1
+                                       if pparamnode1 != null then
+                                               listnode2.add(pparamnode1)
+                                       end
+                                       node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction348
+private class ReduceAction564
        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 tggnode2 = nodearraylist1
-                                       assert tggnode2 isa nullable TGg
-                                       var pmethidnode1: nullable AGgMethid = new AGgMethid.init_aggmethid(
-                                               tggnode2
-                                       )
-                                       node_list = pmethidnode1
+                                       var listnode3 = new Array[Object]
+                                       var pparamnode1 = nodearraylist1
+                                       var listnode2 = nodearraylist2
+                                       assert listnode2 isa Array[Object]
+                                       if pparamnode1 != null then
+                                               listnode3.add(pparamnode1)
+                                       end
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction349
+private class ReduceAction565
        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 pmethidnode1: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode2,
-                                               tcbranode3
-                                       )
-                                       node_list = pmethidnode1
+                                       var pparamnode1 = nodearraylist3
+                                       node_list = pparamnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction350
+private class ReduceAction566
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tstarshipnode2 = nodearraylist1
-                                       assert tstarshipnode2 isa nullable TStarship
-                                       var pmethidnode1: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode2
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
+                                               tidnode2,
+                                               null,
+                                               null,
+                                               null
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = pparamnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction351
+private class ReduceAction567
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -15240,172 +23782,129 @@ private class ReduceAction351
                                        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(
+                                       var pannotationsnode5 = nodearraylist2
+                                       assert pannotationsnode5 isa nullable AAnnotations
+                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
                                                tidnode2,
-                                               tassignnode3
+                                               null,
+                                               null,
+                                               pannotationsnode5
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = pparamnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction352
+private class ReduceAction568
        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
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var ptypenode3 = nodearraylist2
+                                       assert ptypenode3 isa nullable AType
+                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
+                                               tidnode2,
+                                               ptypenode3,
+                                               null,
+                                               null
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = pparamnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction353
+private class ReduceAction569
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var tcparnode4 = nodearraylist3
-                                       assert tcparnode4 isa nullable TCpar
-                                       var ptypenode5 = nodearraylist4
-                                       assert ptypenode5 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode3,
-                                               tcparnode4,
-                                               ptypenode5,
-                                               listnode6
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var pannotationsnode5 = nodearraylist2
+                                       assert pannotationsnode5 isa nullable AAnnotations
+                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
+                                               tidnode2,
+                                               ptypenode3,
+                                               null,
+                                               pannotationsnode5
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pparamnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction354
+private class ReduceAction570
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tcparnode5 = nodearraylist4
-                                       assert tcparnode5 isa nullable TCpar
-                                       var ptypenode6 = nodearraylist5
-                                       assert ptypenode6 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode4,
-                                               tcparnode5,
-                                               ptypenode6,
-                                               listnode7
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var ptypenode3 = nodearraylist2
+                                       assert ptypenode3 isa nullable AType
+                                       var tdotdotdotnode4 = nodearraylist3
+                                       assert tdotdotdotnode4 isa nullable TDotdotdot
+                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
+                                               tidnode2,
+                                               ptypenode3,
+                                               tdotdotdotnode4,
+                                               null
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pparamnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction355
+private class ReduceAction571
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var 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
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tdotdotdotnode4 = nodearraylist4
+                                       assert tdotdotdotnode4 isa nullable TDotdotdot
+                                       var pannotationsnode5 = nodearraylist2
+                                       assert pannotationsnode5 isa nullable AAnnotations
+                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
+                                               tidnode2,
+                                               ptypenode3,
+                                               tdotdotdotnode4,
+                                               pannotationsnode5
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pparamnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction356
+private class ReduceAction572
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var 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 = psignaturenode1
+                                       var listnode2 = new Array[Object]
+                                       var listnode1 = nodearraylist1
+                                       assert listnode1 isa Array[Object]
+                                       listnode2 = concat(listnode2, listnode1)
+                                       node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction357
+private class ReduceAction573
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -15414,24 +23913,24 @@ private class ReduceAction357
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var tcparnode4 = nodearraylist3
-                                       assert tcparnode4 isa nullable TCpar
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode3,
-                                               tcparnode4,
+                                       var tbangnode3 = nodearraylist1
+                                       assert tbangnode3 isa nullable TBang
+                                       var tidnode4 = nodearraylist2
+                                       assert tidnode4 isa nullable TId
+                                       var psignaturenode5 = nodearraylist3
+                                       assert psignaturenode5 isa nullable ASignature
+                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
                                                null,
-                                               listnode6
+                                               tbangnode3,
+                                               tidnode4,
+                                               psignaturenode5,
+                                               null
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pclosuredeclnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction358
+private class ReduceAction574
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -15441,587 +23940,549 @@ private class ReduceAction358
                                        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
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var tbangnode3 = nodearraylist2
+                                       assert tbangnode3 isa nullable TBang
+                                       var tidnode4 = nodearraylist3
+                                       assert tidnode4 isa nullable TId
+                                       var psignaturenode5 = nodearraylist4
+                                       assert psignaturenode5 isa nullable ASignature
+                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
+                                               tkwbreaknode2,
+                                               tbangnode3,
+                                               tidnode4,
+                                               psignaturenode5,
+                                               null
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pclosuredeclnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction359
+private class ReduceAction575
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var tcparnode4 = nodearraylist3
-                                       assert tcparnode4 isa nullable TCpar
-                                       var listnode6 = nodearraylist5
-                                       assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode3,
-                                               tcparnode4,
+                                       var tbangnode3 = nodearraylist1
+                                       assert tbangnode3 isa nullable TBang
+                                       var tidnode4 = nodearraylist2
+                                       assert tidnode4 isa nullable TId
+                                       var psignaturenode5 = nodearraylist3
+                                       assert psignaturenode5 isa nullable ASignature
+                                       var pexprnode6 = nodearraylist5
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
                                                null,
-                                               listnode7
+                                               tbangnode3,
+                                               tidnode4,
+                                               psignaturenode5,
+                                               pexprnode6
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pclosuredeclnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction360
+private class ReduceAction576
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tcparnode5 = nodearraylist4
-                                       assert tcparnode5 isa nullable TCpar
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode4,
-                                               tcparnode5,
-                                               null,
-                                               listnode8
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var tbangnode3 = nodearraylist2
+                                       assert tbangnode3 isa nullable TBang
+                                       var tidnode4 = nodearraylist3
+                                       assert tidnode4 isa nullable TId
+                                       var psignaturenode5 = nodearraylist4
+                                       assert psignaturenode5 isa nullable ASignature
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
+                                               tkwbreaknode2,
+                                               tbangnode3,
+                                               tidnode4,
+                                               psignaturenode5,
+                                               pexprnode6
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pclosuredeclnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction361
+private class ReduceAction577
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var ptypenode5 = nodearraylist1
-                                       assert ptypenode5 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               null,
-                                               listnode3,
+                                       var tbangnode3 = nodearraylist1
+                                       assert tbangnode3 isa nullable TBang
+                                       var tidnode4 = nodearraylist2
+                                       assert tidnode4 isa nullable TId
+                                       var psignaturenode5 = nodearraylist3
+                                       assert psignaturenode5 isa nullable ASignature
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
                                                null,
-                                               ptypenode5,
-                                               listnode6
+                                               tbangnode3,
+                                               tidnode4,
+                                               psignaturenode5,
+                                               pexprnode6
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pclosuredeclnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction362
+private class ReduceAction578
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var ptypenode5 = nodearraylist1
-                                       assert ptypenode5 isa nullable AType
-                                       var listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               null,
-                                               listnode3,
-                                               null,
-                                               ptypenode5,
-                                               listnode7
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var tbangnode3 = nodearraylist2
+                                       assert tbangnode3 isa nullable TBang
+                                       var tidnode4 = nodearraylist3
+                                       assert tidnode4 isa nullable TId
+                                       var psignaturenode5 = nodearraylist4
+                                       assert psignaturenode5 isa nullable ASignature
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
+                                               tkwbreaknode2,
+                                               tbangnode3,
+                                               tidnode4,
+                                               psignaturenode5,
+                                               pexprnode6
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pclosuredeclnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction363
+private class ReduceAction579
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               null,
-                                               listnode3,
-                                               null,
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
                                                null,
-                                               listnode6
+                                               pexprnode3
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction364
+private class ReduceAction580
        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 listnode7 = new Array[Object]
-                                       var listnode6 = nodearraylist2
-                                       assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               null,
-                                               listnode3,
-                                               null,
-                                               null,
-                                               listnode7
+                                       var listnode4 = new Array[Object]
+                                       var tkwimportnode2 = nodearraylist1
+                                       assert tkwimportnode2 isa nullable TKwimport
+                                       var pexterncallnode3 = nodearraylist3
+                                       assert pexterncallnode3 isa nullable AExternCall
+                                       if pexterncallnode3 != null then
+                                               listnode4.add(pexterncallnode3)
+                                       end
+                                       var pexterncallsnode1: nullable AExternCalls = new AExternCalls.init_aexterncalls(
+                                               tkwimportnode2,
+                                               listnode4
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pexterncallsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction365
+private class ReduceAction581
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var tcparnode4 = nodearraylist3
-                                       assert tcparnode4 isa nullable TCpar
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode3,
-                                               tcparnode4,
-                                               null,
-                                               listnode6
+                                       var listnode5 = new Array[Object]
+                                       var tkwimportnode2 = nodearraylist1
+                                       assert tkwimportnode2 isa nullable TKwimport
+                                       var pexterncallnode3 = nodearraylist3
+                                       assert pexterncallnode3 isa nullable AExternCall
+                                       var listnode4 = nodearraylist4
+                                       assert listnode4 isa Array[Object]
+                                       if pexterncallnode3 != null then
+                                               listnode5.add(pexterncallnode3)
+                                       end
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexterncallsnode1: nullable AExternCalls = new AExternCalls.init_aexterncalls(
+                                               tkwimportnode2,
+                                               listnode5
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pexterncallsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction366
+private class ReduceAction582
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tcparnode5 = nodearraylist4
-                                       assert tcparnode5 isa nullable TCpar
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode4,
-                                               tcparnode5,
-                                               null,
-                                               listnode7
-                                       )
-                                       node_list = psignaturenode1
+                                       var pexterncallnode1 = nodearraylist3
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction367
+private class ReduceAction583
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var tcparnode4 = nodearraylist3
-                                       assert tcparnode4 isa nullable TCpar
-                                       var ptypenode5 = nodearraylist4
-                                       assert ptypenode5 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode3,
-                                               tcparnode4,
-                                               ptypenode5,
-                                               listnode6
-                                       )
-                                       node_list = psignaturenode1
+                                       var pexterncallnode1 = nodearraylist1
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction368
+private class ReduceAction585
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tcparnode5 = nodearraylist4
-                                       assert tcparnode5 isa nullable TCpar
-                                       var ptypenode6 = nodearraylist5
-                                       assert ptypenode6 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode4,
-                                               tcparnode5,
-                                               ptypenode6,
-                                               listnode7
+                                       var tkwsupernode2 = nodearraylist1
+                                       assert tkwsupernode2 isa nullable TKwsuper
+                                       var pexterncallnode1: nullable ASuperExternCall = new ASuperExternCall.init_asuperexterncall(
+                                               tkwsupernode2
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction369
+private class ReduceAction586
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var listnode3 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               null,
-                                               listnode3,
-                                               null,
-                                               null,
-                                               listnode6
+                                       var nodearraylist1 = p.pop
+                                       var pmethidnode2 = nodearraylist1
+                                       assert pmethidnode2 isa nullable AMethid
+                                       var pexterncallnode1: nullable ALocalPropExternCall = new ALocalPropExternCall.init_alocalpropexterncall(
+                                               pmethidnode2
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction370
+private class ReduceAction587
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var ptypenode5 = nodearraylist1
-                                       assert ptypenode5 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               null,
-                                               listnode3,
-                                               null,
-                                               ptypenode5,
-                                               listnode6
+                                       var 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 = psignaturenode1
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction371
+private class ReduceAction588
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pparamnode1 = nodearraylist1
-                                       if pparamnode1 != null then
-                                               listnode2.add(pparamnode1)
-                                       end
-                                       node_list = listnode2
+                                       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 ReduceAction372
+private class ReduceAction589
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pparamnode1 = nodearraylist1
-                                       var listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       if pparamnode1 != null then
-                                               listnode3.add(pparamnode1)
-                                       end
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var tkwasnode3 = 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 ReduceAction373
+private class ReduceAction590
        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 pparamnode1 = nodearraylist3
-                                       node_list = pparamnode1
+                                       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 ReduceAction374
+private class ReduceAction591
        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 tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               null,
-                                               null,
-                                               null
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var tkwasnode3 = 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 = pparamnode1
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction375
+private class ReduceAction592
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var pannotationsnode5 = nodearraylist2
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               null,
-                                               null,
-                                               pannotationsnode5
+                                       var tkwinnode2 = nodearraylist1
+                                       assert tkwinnode2 isa nullable TKwin
+                                       var tstringnode3 = nodearraylist2
+                                       assert tstringnode3 isa nullable TString
+                                       var pinlanguagenode1: nullable AInLanguage = new AInLanguage.init_ainlanguage(
+                                               tkwinnode2,
+                                               tstringnode3
                                        )
-                                       node_list = pparamnode1
+                                       node_list = pinlanguagenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction376
+private class ReduceAction593
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var ptypenode3 = nodearraylist2
-                                       assert ptypenode3 isa nullable AType
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               ptypenode3,
+                                       var texterncodesegmentnode3 = nodearraylist1
+                                       assert texterncodesegmentnode3 isa nullable TExternCodeSegment
+                                       var pexterncodeblocknode1: nullable AExternCodeBlock = new AExternCodeBlock.init_aexterncodeblock(
                                                null,
-                                               null
+                                               texterncodesegmentnode3
                                        )
-                                       node_list = pparamnode1
+                                       node_list = pexterncodeblocknode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction377
+private class ReduceAction594
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable AType
-                                       var pannotationsnode5 = nodearraylist2
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               ptypenode3,
-                                               null,
-                                               pannotationsnode5
+                                       var pinlanguagenode2 = nodearraylist1
+                                       assert pinlanguagenode2 isa nullable AInLanguage
+                                       var texterncodesegmentnode3 = nodearraylist2
+                                       assert texterncodesegmentnode3 isa nullable TExternCodeSegment
+                                       var pexterncodeblocknode1: nullable AExternCodeBlock = new AExternCodeBlock.init_aexterncodeblock(
+                                               pinlanguagenode2,
+                                               texterncodesegmentnode3
                                        )
-                                       node_list = pparamnode1
+                                       node_list = pexterncodeblocknode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction378
+private class ReduceAction595
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var ptypenode3 = nodearraylist2
-                                       assert ptypenode3 isa nullable AType
-                                       var tdotdotdotnode4 = nodearraylist3
-                                       assert tdotdotdotnode4 isa nullable TDotdotdot
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               ptypenode3,
-                                               tdotdotdotnode4,
-                                               null
-                                       )
-                                       node_list = pparamnode1
+                                       var pexterncodeblocknode1 = nodearraylist2
+                                       node_list = pexterncodeblocknode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction379
+private class ReduceAction596
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable AType
-                                       var tdotdotdotnode4 = nodearraylist4
-                                       assert tdotdotdotnode4 isa nullable TDotdotdot
-                                       var pannotationsnode5 = nodearraylist2
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               ptypenode3,
-                                               tdotdotdotnode4,
-                                               pannotationsnode5
+                                       var listnode4 = new Array[Object]
+                                       var tclassidnode3 = nodearraylist1
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               null,
+                                               tclassidnode3,
+                                               listnode4,
+                                               null
                                        )
-                                       node_list = pparamnode1
+                                       node_list = ptypenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction380
+private class ReduceAction597
        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 = nodearraylist1
-                                       assert listnode1 isa Array[Object]
-                                       listnode2 = concat(listnode2, listnode1)
-                                       node_list = listnode2
+                                       var listnode4 = new Array[Object]
+                                       var tkwnullablenode2 = nodearraylist1
+                                       assert tkwnullablenode2 isa nullable TKwnullable
+                                       var tclassidnode3 = nodearraylist2
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               tkwnullablenode2,
+                                               tclassidnode3,
+                                               listnode4,
+                                               null
+                                       )
+                                       node_list = ptypenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction381
+private class ReduceAction598
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tbangnode3 = nodearraylist1
-                                       assert tbangnode3 isa nullable TBang
-                                       var tidnode4 = nodearraylist2
-                                       assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist3
-                                       assert psignaturenode5 isa nullable ASignature
-                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
+                                       var listnode4 = new Array[Object]
+                                       var tclassidnode3 = nodearraylist1
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var pannotationsnode5 = nodearraylist2
+                                       assert pannotationsnode5 isa nullable AAnnotations
+                                       var ptypenode1: nullable AType = new AType.init_atype(
                                                null,
-                                               tbangnode3,
-                                               tidnode4,
-                                               psignaturenode5,
-                                               null
+                                               tclassidnode3,
+                                               listnode4,
+                                               pannotationsnode5
                                        )
-                                       node_list = pclosuredeclnode1
+                                       node_list = ptypenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction382
+private class ReduceAction599
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var tbangnode3 = nodearraylist2
-                                       assert tbangnode3 isa nullable TBang
-                                       var tidnode4 = nodearraylist3
-                                       assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist4
-                                       assert psignaturenode5 isa nullable ASignature
-                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
-                                               tkwbreaknode2,
-                                               tbangnode3,
-                                               tidnode4,
-                                               psignaturenode5,
-                                               null
+                                       var listnode4 = new Array[Object]
+                                       var tkwnullablenode2 = nodearraylist1
+                                       assert tkwnullablenode2 isa nullable TKwnullable
+                                       var tclassidnode3 = nodearraylist2
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var pannotationsnode5 = nodearraylist3
+                                       assert pannotationsnode5 isa nullable AAnnotations
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               tkwnullablenode2,
+                                               tclassidnode3,
+                                               listnode4,
+                                               pannotationsnode5
                                        )
-                                       node_list = pclosuredeclnode1
+                                       node_list = ptypenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction383
+private class ReduceAction600
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -16032,26 +24493,23 @@ private class ReduceAction383
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tbangnode3 = nodearraylist1
-                                       assert tbangnode3 isa nullable TBang
-                                       var tidnode4 = nodearraylist2
-                                       assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist3
-                                       assert psignaturenode5 isa nullable ASignature
-                                       var pexprnode6 = nodearraylist5
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode3 = nodearraylist1
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var listnode4 = nodearraylist4
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var ptypenode1: nullable AType = new AType.init_atype(
                                                null,
-                                               tbangnode3,
-                                               tidnode4,
-                                               psignaturenode5,
-                                               pexprnode6
+                                               tclassidnode3,
+                                               listnode5,
+                                               null
                                        )
-                                       node_list = pclosuredeclnode1
+                                       node_list = ptypenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction384
+private class ReduceAction601
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -16063,28 +24521,25 @@ private class ReduceAction384
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var tbangnode3 = nodearraylist2
-                                       assert tbangnode3 isa nullable TBang
-                                       var tidnode4 = nodearraylist3
-                                       assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist4
-                                       assert psignaturenode5 isa nullable ASignature
-                                       var pexprnode6 = nodearraylist6
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
-                                               tkwbreaknode2,
-                                               tbangnode3,
-                                               tidnode4,
-                                               psignaturenode5,
-                                               pexprnode6
+                                       var listnode5 = new Array[Object]
+                                       var tkwnullablenode2 = nodearraylist1
+                                       assert tkwnullablenode2 isa nullable TKwnullable
+                                       var tclassidnode3 = nodearraylist2
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               tkwnullablenode2,
+                                               tclassidnode3,
+                                               listnode5,
+                                               null
                                        )
-                                       node_list = pclosuredeclnode1
+                                       node_list = ptypenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction385
+private class ReduceAction602
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -16096,26 +24551,25 @@ private class ReduceAction385
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tbangnode3 = nodearraylist1
-                                       assert tbangnode3 isa nullable TBang
-                                       var tidnode4 = nodearraylist2
-                                       assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist3
-                                       assert psignaturenode5 isa nullable ASignature
-                                       var pexprnode6 = nodearraylist6
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode3 = nodearraylist1
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var listnode4 = nodearraylist4
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pannotationsnode6 = nodearraylist7
+                                       assert pannotationsnode6 isa nullable AAnnotations
+                                       var ptypenode1: nullable AType = new AType.init_atype(
                                                null,
-                                               tbangnode3,
-                                               tidnode4,
-                                               psignaturenode5,
-                                               pexprnode6
+                                               tclassidnode3,
+                                               listnode5,
+                                               pannotationsnode6
                                        )
-                                       node_list = pclosuredeclnode1
+                                       node_list = ptypenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction386
+private class ReduceAction603
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -16125,99 +24579,64 @@ private class ReduceAction386
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var tbangnode3 = nodearraylist2
-                                       assert tbangnode3 isa nullable TBang
-                                       var tidnode4 = nodearraylist3
-                                       assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist4
-                                       assert psignaturenode5 isa nullable ASignature
-                                       var pexprnode6 = nodearraylist7
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
-                                               tkwbreaknode2,
-                                               tbangnode3,
-                                               tidnode4,
-                                               psignaturenode5,
-                                               pexprnode6
-                                       )
-                                       node_list = pclosuredeclnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction387
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode3 = nodearraylist1
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
-                                               null,
-                                               pexprnode3
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var tkwnullablenode2 = nodearraylist1
+                                       assert tkwnullablenode2 isa nullable TKwnullable
+                                       var tclassidnode3 = nodearraylist2
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pannotationsnode6 = nodearraylist8
+                                       assert pannotationsnode6 isa nullable AAnnotations
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               tkwnullablenode2,
+                                               tclassidnode3,
+                                               listnode5,
+                                               pannotationsnode6
                                        )
-                                       node_list = pexprnode1
+                                       node_list = ptypenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction388
+private class ReduceAction604
        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)
+                                       var listnode2 = new Array[Object]
+                                       var ptypenode1 = nodearraylist1
+                                       if ptypenode1 != null then
+                                               listnode2.add(ptypenode1)
                                        end
-                                       var pexterncallsnode1: nullable AExternCalls = new AExternCalls.init_aexterncalls(
-                                               tkwimportnode2,
-                                               listnode4
-                                       )
-                                       node_list = pexterncallsnode1
+                                       node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction389
+private class ReduceAction605
        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)
+                                       var listnode3 = new Array[Object]
+                                       var ptypenode1 = nodearraylist1
+                                       var listnode2 = nodearraylist2
+                                       assert listnode2 isa Array[Object]
+                                       if ptypenode1 != null then
+                                               listnode3.add(ptypenode1)
                                        end
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexterncallsnode1: nullable AExternCalls = new AExternCalls.init_aexterncalls(
-                                               tkwimportnode2,
-                                               listnode5
-                                       )
-                                       node_list = pexterncallsnode1
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction390
+private class ReduceAction606
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -16225,301 +24644,304 @@ private class ReduceAction390
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexterncallnode1 = nodearraylist3
-                                       node_list = pexterncallnode1
+                                       var ptypenode1 = nodearraylist3
+                                       node_list = ptypenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction391
+private class ReduceAction608
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexterncallnode1 = nodearraylist1
-                                       node_list = pexterncallnode1
+                                       var pexprnode1 = nodearraylist2
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction393
+private class ReduceAction609
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwsupernode2 = nodearraylist1
-                                       assert tkwsupernode2 isa nullable TKwsuper
-                                       var pexterncallnode1: nullable ASuperExternCall = new ASuperExternCall.init_asuperexterncall(
-                                               tkwsupernode2
+                                       var listnode2 = new Array[Object]
+                                       var tkwendnode3 = nodearraylist2
+                                       assert tkwendnode3 isa nullable TKwend
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode2,
+                                               tkwendnode3
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction394
+private class ReduceAction610
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var pmethidnode2 = nodearraylist1
-                                       assert pmethidnode2 isa nullable AMethid
-                                       var pexterncallnode1: nullable ALocalPropExternCall = new ALocalPropExternCall.init_alocalpropexterncall(
-                                               pmethidnode2
+                                       var listnode2 = new Array[Object]
+                                       var tkwendnode3 = nodearraylist1
+                                       assert tkwendnode3 isa nullable TKwend
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode2,
+                                               tkwendnode3
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction395
+private class ReduceAction611
        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
+                                       var pexprnode1 = nodearraylist1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction396
+private class ReduceAction612
        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
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode3,
+                                               null
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction397
+private class ReduceAction613
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var ptypenode2 = nodearraylist1
-                                       assert ptypenode2 isa nullable AType
-                                       var tkwasnode3 = nodearraylist2
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var ptypenode4 = nodearraylist6
-                                       assert ptypenode4 isa nullable AType
-                                       var pexterncallnode1: nullable ACastAsExternCall = new ACastAsExternCall.init_acastasexterncall(
-                                               ptypenode2,
-                                               tkwasnode3,
-                                               ptypenode4
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       if pexprnode2 != null then
+                                               listnode4.add(pexprnode2)
+                                       end
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode4,
+                                               null
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction398
+private class ReduceAction614
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var ptypenode2 = nodearraylist1
-                                       assert ptypenode2 isa nullable AType
-                                       var tkwasnode3 = nodearraylist2
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var tkwnullablenode4 = nodearraylist4
-                                       assert tkwnullablenode4 isa nullable TKwnullable
-                                       var pexterncallnode1: nullable AAsNullableExternCall = new AAsNullableExternCall.init_aasnullableexterncall(
-                                               ptypenode2,
-                                               tkwasnode3,
-                                               tkwnullablenode4
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode3,
+                                               null
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction399
+private class ReduceAction615
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var ptypenode2 = nodearraylist1
-                                       assert ptypenode2 isa nullable AType
-                                       var tkwasnode3 = nodearraylist2
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var tkwnotnode4 = nodearraylist4
-                                       assert tkwnotnode4 isa nullable TKwnot
-                                       var tkwnullablenode5 = nodearraylist6
-                                       assert tkwnullablenode5 isa nullable TKwnullable
-                                       var pexterncallnode1: nullable AAsNotNullableExternCall = new AAsNotNullableExternCall.init_aasnotnullableexterncall(
-                                               ptypenode2,
-                                               tkwasnode3,
-                                               tkwnotnode4,
-                                               tkwnullablenode5
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       if pexprnode2 != null then
+                                               listnode4.add(pexprnode2)
+                                       end
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode4,
+                                               null
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction400
+private class ReduceAction616
        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 tkwinnode2 = nodearraylist1
-                                       assert tkwinnode2 isa nullable TKwin
-                                       var tstringnode3 = nodearraylist2
-                                       assert tstringnode3 isa nullable TString
-                                       var pinlanguagenode1: nullable AInLanguage = new AInLanguage.init_ainlanguage(
-                                               tkwinnode2,
-                                               tstringnode3
+                                       var 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 = pinlanguagenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction401
+private class ReduceAction617
        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 texterncodesegmentnode3 = nodearraylist1
-                                       assert texterncodesegmentnode3 isa nullable TExternCodeSegment
-                                       var pexterncodeblocknode1: nullable AExternCodeBlock = new AExternCodeBlock.init_aexterncodeblock(
-                                               null,
-                                               texterncodesegmentnode3
+                                       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 = pexterncodeblocknode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction402
+private class ReduceAction621
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pinlanguagenode2 = nodearraylist1
-                                       assert pinlanguagenode2 isa nullable AInLanguage
-                                       var texterncodesegmentnode3 = nodearraylist2
-                                       assert texterncodesegmentnode3 isa nullable TExternCodeSegment
-                                       var pexterncodeblocknode1: nullable AExternCodeBlock = new AExternCodeBlock.init_aexterncodeblock(
-                                               pinlanguagenode2,
-                                               texterncodesegmentnode3
+                                       var tkwreturnnode2 = nodearraylist1
+                                       assert tkwreturnnode2 isa nullable TKwreturn
+                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
+                                               tkwreturnnode2,
+                                               null
                                        )
-                                       node_list = pexterncodeblocknode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction403
+private class ReduceAction622
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexterncodeblocknode1 = nodearraylist2
-                                       node_list = pexterncodeblocknode1
+                                       var tkwreturnnode2 = nodearraylist1
+                                       assert tkwreturnnode2 isa nullable TKwreturn
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
+                                               tkwreturnnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction404
+private class ReduceAction623
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tclassidnode3 = nodearraylist1
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
                                                null,
-                                               tclassidnode3,
-                                               listnode4,
                                                null
                                        )
-                                       node_list = ptypenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction405
+private class ReduceAction624
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwnullablenode2 = nodearraylist1
-                                       assert tkwnullablenode2 isa nullable TKwnullable
-                                       var tclassidnode3 = nodearraylist2
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               tkwnullablenode2,
-                                               tclassidnode3,
-                                               listnode4,
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
+                                               plabelnode3,
                                                null
                                        )
-                                       node_list = ptypenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction406
+private class ReduceAction625
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tclassidnode3 = nodearraylist1
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var pannotationsnode5 = nodearraylist2
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
                                                null,
-                                               tclassidnode3,
-                                               listnode4,
-                                               pannotationsnode5
+                                               pexprnode4
                                        )
-                                       node_list = ptypenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction407
+private class ReduceAction626
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -16527,363 +24949,396 @@ private class ReduceAction407
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwnullablenode2 = nodearraylist1
-                                       assert tkwnullablenode2 isa nullable TKwnullable
-                                       var tclassidnode3 = nodearraylist2
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var pannotationsnode5 = nodearraylist3
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               tkwnullablenode2,
-                                               tclassidnode3,
-                                               listnode4,
-                                               pannotationsnode5
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
+                                               plabelnode3,
+                                               pexprnode4
                                        )
-                                       node_list = ptypenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction408
+private class ReduceAction627
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tclassidnode3 = nodearraylist1
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var listnode4 = nodearraylist4
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               null,
-                                               tclassidnode3,
-                                               listnode5,
-                                               null
+                                       var tkwabortnode2 = nodearraylist1
+                                       assert tkwabortnode2 isa nullable TKwabort
+                                       var pexprnode1: nullable AAbortExpr = new AAbortExpr.init_aabortexpr(
+                                               tkwabortnode2
                                        )
-                                       node_list = ptypenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction409
+private class ReduceAction628
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tkwnullablenode2 = nodearraylist1
-                                       assert tkwnullablenode2 isa nullable TKwnullable
-                                       var tclassidnode3 = nodearraylist2
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               tkwnullablenode2,
-                                               tclassidnode3,
-                                               listnode5,
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
+                                               null,
                                                null
                                        )
-                                       node_list = ptypenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction410
+private class ReduceAction629
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tclassidnode3 = nodearraylist1
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var listnode4 = nodearraylist4
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pannotationsnode6 = nodearraylist7
-                                       assert pannotationsnode6 isa nullable AAnnotations
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               null,
-                                               tclassidnode3,
-                                               listnode5,
-                                               pannotationsnode6
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
+                                               plabelnode3,
+                                               null
                                        )
-                                       node_list = ptypenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction411
+private class ReduceAction630
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tkwnullablenode2 = nodearraylist1
-                                       assert tkwnullablenode2 isa nullable TKwnullable
-                                       var tclassidnode3 = nodearraylist2
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pannotationsnode6 = nodearraylist8
-                                       assert pannotationsnode6 isa nullable AAnnotations
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               tkwnullablenode2,
-                                               tclassidnode3,
-                                               listnode5,
-                                               pannotationsnode6
-                                       )
-                                       node_list = ptypenode1
-                                       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 listnode2 = new Array[Object]
-                                       var ptypenode1 = nodearraylist1
-                                       if ptypenode1 != null then
-                                               listnode2.add(ptypenode1)
-                                       end
-                                       node_list = listnode2
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
+                                               null,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction413
+private class ReduceAction631
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var ptypenode1 = nodearraylist1
-                                       var listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       if ptypenode1 != null then
-                                               listnode3.add(ptypenode1)
-                                       end
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
+                                               plabelnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction414
+private class ReduceAction638
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var ptypenode1 = nodearraylist3
-                                       node_list = ptypenode1
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist5
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction416
+private class ReduceAction639
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist2
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist2
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               listnode5
+                                       )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction417
+private class ReduceAction640
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var tkwendnode3 = nodearraylist2
-                                       assert tkwendnode3 isa nullable TKwend
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode2,
-                                               tkwendnode3
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist5
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist6
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               listnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction418
+private class ReduceAction641
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var tkwendnode3 = nodearraylist1
-                                       assert tkwendnode3 isa nullable TKwend
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode2,
-                                               tkwendnode3
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist6
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist7
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               listnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction419
+private class ReduceAction643
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist3
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               listnode5
+                                       )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction420
+private class ReduceAction644
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode3,
-                                               null
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist4
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               listnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction421
+private class ReduceAction646
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
+                                       var listnode6 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       if pexprnode2 != null then
-                                               listnode4.add(pexprnode2)
-                                       end
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4,
-                                               null
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist5
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var listnode5 = nodearraylist6
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               listnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction422
+private class ReduceAction647
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode3,
-                                               null
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist2
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var listnode5 = nodearraylist3
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               listnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction423
+private class ReduceAction648
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
+                                       var listnode6 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       if pexprnode2 != null then
-                                               listnode4.add(pexprnode2)
-                                       end
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4,
-                                               null
+                                       var tidnode3 = nodearraylist5
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist6
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var listnode5 = nodearraylist7
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               listnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction424
+private class ReduceAction649
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
-                                       var tkwendnode4 = nodearraylist3
-                                       assert tkwendnode4 isa nullable TKwend
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode3,
-                                               tkwendnode4
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist6
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist7
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var listnode5 = nodearraylist8
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               listnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction425
+private class ReduceAction651
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -16892,236 +25347,308 @@ private class ReduceAction425
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       if pexprnode2 != null then
-                                               listnode4.add(pexprnode2)
-                                       end
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tkwendnode5 = nodearraylist4
-                                       assert tkwendnode5 isa nullable TKwend
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4,
-                                               tkwendnode5
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist3
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               listnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction429
+private class ReduceAction652
        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 tkwreturnnode2 = nodearraylist1
-                                       assert tkwreturnnode2 isa nullable TKwreturn
-                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
-                                               tkwreturnnode2,
-                                               null
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist4
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var listnode5 = nodearraylist5
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               listnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction430
+private class ReduceAction654
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwreturnnode2 = nodearraylist1
-                                       assert tkwreturnnode2 isa nullable TKwreturn
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
-                                               tkwreturnnode2,
-                                               pexprnode3
+                                       var tkwsupernode3 = nodearraylist1
+                                       assert tkwsupernode3 isa nullable TKwsuper
+                                       var pexprsnode4 = nodearraylist2
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                               null,
+                                               tkwsupernode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction431
+private class ReduceAction655
        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 tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
-                                               null,
-                                               null
+                                       var listnode3 = new Array[Object]
+                                       var tclassidnode4 = nodearraylist1
+                                       assert tclassidnode4 isa nullable TClassid
+                                       var pqualifiednode2: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode3,
+                                               tclassidnode4
+                                       )
+                                       var tkwsupernode5 = nodearraylist2
+                                       assert tkwsupernode5 isa nullable TKwsuper
+                                       var pexprsnode6 = nodearraylist3
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode5,
+                                               pexprsnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction432
+private class ReduceAction656
        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 tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var plabelnode3 = nodearraylist2
-                                       assert plabelnode3 isa nullable ALabel
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
-                                               plabelnode3,
-                                               null
+                                       var listnode4 = new Array[Object]
+                                       var listnode3 = nodearraylist1
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tclassidnode5 = nodearraylist2
+                                       assert tclassidnode5 isa nullable TClassid
+                                       var pqualifiednode2: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode4,
+                                               tclassidnode5
+                                       )
+                                       var tkwsupernode6 = nodearraylist3
+                                       assert tkwsupernode6 isa nullable TKwsuper
+                                       var pexprsnode7 = nodearraylist4
+                                       assert pexprsnode7 isa nullable AExprs
+                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode6,
+                                               pexprsnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction433
+private class ReduceAction657
        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 tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var pexprnode4 = nodearraylist2
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
-                                               null,
-                                               pexprnode4
+                                       var listnode4 = new Array[Object]
+                                       var listnode3 = nodearraylist1
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var pqualifiednode2: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode4,
+                                               null
+                                       )
+                                       var tkwsupernode6 = nodearraylist2
+                                       assert tkwsupernode6 isa nullable TKwsuper
+                                       var pexprsnode7 = nodearraylist3
+                                       assert pexprsnode7 isa nullable AExprs
+                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode6,
+                                               pexprsnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction434
+private class ReduceAction658
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var plabelnode3 = nodearraylist2
-                                       assert plabelnode3 isa nullable ALabel
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
-                                               plabelnode3,
-                                               pexprnode4
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwinitnode3 = nodearraylist4
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist5
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction435
+private class ReduceAction659
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwabortnode2 = nodearraylist1
-                                       assert tkwabortnode2 isa nullable TKwabort
-                                       var pexprnode1: nullable AAbortExpr = new AAbortExpr.init_aabortexpr(
-                                               tkwabortnode2
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tkwinitnode3 = nodearraylist1
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist2
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction436
+private class ReduceAction660
        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 tkwcontinuenode2 = nodearraylist1
-                                       assert tkwcontinuenode2 isa nullable TKwcontinue
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
-                                               null,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwinitnode3 = nodearraylist5
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist6
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction437
+private class ReduceAction661
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwcontinuenode2 = nodearraylist1
-                                       assert tkwcontinuenode2 isa nullable TKwcontinue
-                                       var plabelnode3 = nodearraylist2
-                                       assert plabelnode3 isa nullable ALabel
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
-                                               plabelnode3,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwinitnode3 = nodearraylist6
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist7
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction438
+private class ReduceAction663
        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 tkwcontinuenode2 = nodearraylist1
-                                       assert tkwcontinuenode2 isa nullable TKwcontinue
-                                       var pexprnode4 = nodearraylist2
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
-                                               null,
-                                               pexprnode4
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tkwinitnode3 = nodearraylist2
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist3
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction439
+private class ReduceAction664
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwcontinuenode2 = nodearraylist1
-                                       assert tkwcontinuenode2 isa nullable TKwcontinue
-                                       var plabelnode3 = nodearraylist2
-                                       assert plabelnode3 isa nullable ALabel
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
-                                               plabelnode3,
-                                               pexprnode4
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tkwinitnode3 = nodearraylist3
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist4
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction446
+private class ReduceAction666
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -17131,194 +25658,257 @@ private class ReduceAction446
                                        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 pexprsnode4 = nodearraylist5
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4,
-                                               listnode5
+                                       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 ReduceAction447
+private class ReduceAction667
        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 tidnode3 = nodearraylist1
+                                       var tkwlabelnode2 = nodearraylist1
+                                       assert tkwlabelnode2 isa nullable TKwlabel
+                                       var tidnode3 = nodearraylist2
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist2
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4,
-                                               listnode5
+                                       var plabelnode1: nullable ALabel = new ALabel.init_alabel(
+                                               tkwlabelnode2,
+                                               tidnode3
                                        )
-                                       node_list = pexprnode1
+                                       node_list = plabelnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction448
+private class ReduceAction668
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pclosuredefnode1 = nodearraylist1
+                                       if pclosuredefnode1 != null then
+                                               listnode2.add(pclosuredefnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction669
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist5
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var listnode5 = nodearraylist6
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
+                                       var listnode3 = new Array[Object]
+                                       var pclosuredefnode1 = nodearraylist1
+                                       var listnode2 = nodearraylist2
+                                       assert listnode2 isa Array[Object]
+                                       if pclosuredefnode1 != null then
+                                               listnode3.add(pclosuredefnode1)
+                                       end
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction449
+private class ReduceAction670
        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 listnode6 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist2
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var listnode5 = nodearraylist3
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4,
-                                               listnode6
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var plabelnode7 = nodearraylist5
+                                       assert plabelnode7 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode7
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pclosuredefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction450
+private class ReduceAction671
        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 tkwsupernode3 = nodearraylist1
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var pexprsnode4 = nodearraylist2
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               null,
-                                               tkwsupernode3,
-                                               pexprsnode4
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var tkwdonode6 = nodearraylist8
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var pexprnode7 = nodearraylist9
+                                       assert pexprnode7 isa nullable AExpr
+                                       var plabelnode8 = nodearraylist10
+                                       assert plabelnode8 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               plabelnode8
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pclosuredefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction451
+private class ReduceAction672
        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 pqualifiednode2 = nodearraylist1
-                                       assert pqualifiednode2 isa nullable AQualified
-                                       var tkwsupernode3 = nodearraylist2
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var pexprsnode4 = nodearraylist3
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               pqualifiednode2,
-                                               tkwsupernode3,
-                                               pexprsnode4
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       var plabelnode8 = nodearraylist6
+                                       assert plabelnode8 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               plabelnode8
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pclosuredefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction452
+private class ReduceAction673
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tkwinitnode3 = nodearraylist4
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var pexprsnode4 = nodearraylist5
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               pexprsnode4
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pclosuredefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction453
+private class ReduceAction674
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tkwinitnode3 = nodearraylist1
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var pexprsnode4 = nodearraylist2
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               pexprsnode4
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var tkwdonode6 = nodearraylist8
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var pexprnode7 = nodearraylist9
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pclosuredefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction454
+private class ReduceAction675
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -17328,78 +25918,130 @@ private class ReduceAction454
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwdebugnode2 = nodearraylist1
-                                       assert tkwdebugnode2 isa nullable TKwdebug
-                                       var tkwtypenode3 = nodearraylist2
-                                       assert tkwtypenode3 isa nullable TKwtype
-                                       var pexprnode4 = nodearraylist5
-                                       assert pexprnode4 isa nullable AExpr
-                                       var ptypenode5 = nodearraylist3
-                                       assert ptypenode5 isa nullable AType
-                                       var pexprnode1: nullable ADebugTypeExpr = new ADebugTypeExpr.init_adebugtypeexpr(
-                                               tkwdebugnode2,
-                                               tkwtypenode3,
-                                               pexprnode4,
-                                               ptypenode5
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pclosuredefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction455
+private class ReduceAction676
        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 tkwlabelnode2 = nodearraylist1
-                                       assert tkwlabelnode2 isa nullable TKwlabel
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var plabelnode1: nullable ALabel = new ALabel.init_alabel(
-                                               tkwlabelnode2,
-                                               tidnode3
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var pexprnode6 = nodearraylist5
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               null,
+                                               pexprnode6,
+                                               null
                                        )
-                                       node_list = plabelnode1
+                                       node_list = pclosuredefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction456
+private class ReduceAction677
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pclosuredefnode1 = nodearraylist1
-                                       if pclosuredefnode1 != null then
-                                               listnode2.add(pclosuredefnode1)
-                                       end
-                                       node_list = listnode2
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode7 = nodearraylist10
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               null,
+                                               pexprnode7,
+                                               null
+                                       )
+                                       node_list = pclosuredefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction457
+private class ReduceAction678
        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 pclosuredefnode1 = nodearraylist1
-                                       var listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       if pclosuredefnode1 != null then
-                                               listnode3.add(pclosuredefnode1)
-                                       end
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode7 = nodearraylist6
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               null,
+                                               pexprnode7,
+                                               null
+                                       )
+                                       node_list = pclosuredefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction458
+private class ReduceAction679
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -17416,27 +26058,27 @@ private class ReduceAction458
                                        assert pclosureidnode3 isa nullable AClosureId
                                        var tkwdonode5 = nodearraylist3
                                        assert tkwdonode5 isa nullable TKwdo
-                                       var pexprnode6 = nodearraylist4
+                                       var pexprnode6 = nodearraylist5
                                        assert pexprnode6 isa nullable AExpr
-                                       var plabelnode7 = nodearraylist5
-                                       assert plabelnode7 isa nullable ALabel
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
                                                tbangnode2,
                                                pclosureidnode3,
                                                listnode4,
                                                tkwdonode5,
                                                pexprnode6,
-                                               plabelnode7
+                                               null
                                        )
                                        node_list = pclosuredefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction459
+private class ReduceAction680
        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
@@ -17450,28 +26092,26 @@ private class ReduceAction459
                                        assert tbangnode2 isa nullable TBang
                                        var pclosureidnode3 = nodearraylist2
                                        assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist4
+                                       var listnode4 = nodearraylist5
                                        assert listnode4 isa Array[Object]
                                        listnode5 = concat(listnode5, listnode4)
-                                       var tkwdonode6 = nodearraylist6
+                                       var tkwdonode6 = nodearraylist8
                                        assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist7
+                                       var pexprnode7 = nodearraylist10
                                        assert pexprnode7 isa nullable AExpr
-                                       var plabelnode8 = nodearraylist8
-                                       assert plabelnode8 isa nullable ALabel
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
                                                tbangnode2,
                                                pclosureidnode3,
                                                listnode5,
                                                tkwdonode6,
                                                pexprnode7,
-                                               plabelnode8
+                                               null
                                        )
                                        node_list = pclosuredefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction460
+private class ReduceAction681
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -17492,23 +26132,21 @@ private class ReduceAction460
                                        listnode5 = concat(listnode5, listnode4)
                                        var tkwdonode6 = nodearraylist4
                                        assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist5
+                                       var pexprnode7 = nodearraylist6
                                        assert pexprnode7 isa nullable AExpr
-                                       var plabelnode8 = nodearraylist6
-                                       assert plabelnode8 isa nullable ALabel
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
                                                tbangnode2,
                                                pclosureidnode3,
                                                listnode5,
                                                tkwdonode6,
                                                pexprnode7,
-                                               plabelnode8
+                                               null
                                        )
                                        node_list = pclosuredefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction461
+private class ReduceAction682
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -17524,25 +26162,25 @@ private class ReduceAction461
                                        assert pclosureidnode3 isa nullable AClosureId
                                        var tkwdonode5 = nodearraylist3
                                        assert tkwdonode5 isa nullable TKwdo
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
                                                tbangnode2,
                                                pclosureidnode3,
                                                listnode4,
                                                tkwdonode5,
-                                               pexprnode6,
+                                               null,
                                                null
                                        )
                                        node_list = pclosuredefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction462
+private class ReduceAction683
        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
@@ -17555,26 +26193,24 @@ private class ReduceAction462
                                        assert tbangnode2 isa nullable TBang
                                        var pclosureidnode3 = nodearraylist2
                                        assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist4
+                                       var listnode4 = nodearraylist5
                                        assert listnode4 isa Array[Object]
                                        listnode5 = concat(listnode5, listnode4)
-                                       var tkwdonode6 = nodearraylist6
+                                       var tkwdonode6 = nodearraylist8
                                        assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist7
-                                       assert pexprnode7 isa nullable AExpr
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
                                                tbangnode2,
                                                pclosureidnode3,
                                                listnode5,
                                                tkwdonode6,
-                                               pexprnode7,
+                                               null,
                                                null
                                        )
                                        node_list = pclosuredefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction463
+private class ReduceAction684
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -17594,118 +26230,170 @@ private class ReduceAction463
                                        listnode5 = concat(listnode5, listnode4)
                                        var tkwdonode6 = nodearraylist4
                                        assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable AExpr
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
                                                tbangnode2,
                                                pclosureidnode3,
                                                listnode5,
                                                tkwdonode6,
-                                               pexprnode7,
+                                               null,
                                                null
                                        )
                                        node_list = pclosuredefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction464
+private class ReduceAction685
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var pclosureidnode1: nullable ASimpleClosureId = new ASimpleClosureId.init_asimpleclosureid(
+                                               tidnode2
+                                       )
+                                       node_list = pclosureidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction686
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var pclosureidnode1: nullable ABreakClosureId = new ABreakClosureId.init_abreakclosureid(
+                                               tkwbreaknode2
+                                       )
+                                       node_list = pclosureidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction687
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode4 = nodearraylist1
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               null,
+                                               null,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction688
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var pexprnode6 = nodearraylist5
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               null,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction689
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var pannotationsnode7 = nodearraylist3
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
                                                null,
-                                               pexprnode6,
-                                               null
+                                               null,
+                                               null,
+                                               pannotationsnode7
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction465
+private class ReduceAction690
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist4
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode7 = nodearraylist8
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist3
+                                       assert ptypenode4 isa nullable AType
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
+                                               null,
                                                null,
-                                               pexprnode7,
                                                null
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction466
+private class ReduceAction691
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode7 = nodearraylist6
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist4
+                                       assert ptypenode4 isa nullable AType
+                                       var pannotationsnode7 = nodearraylist3
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
                                                null,
-                                               pexprnode7,
-                                               null
+                                               null,
+                                               pannotationsnode7
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction467
+private class ReduceAction692
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -17715,65 +26403,60 @@ private class ReduceAction467
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var tassignnode5 = nodearraylist3
+                                       assert tassignnode5 isa nullable TAssign
                                        var pexprnode6 = nodearraylist5
                                        assert pexprnode6 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               null,
+                                               tassignnode5,
                                                pexprnode6,
                                                null
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction468
+private class ReduceAction693
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist4
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tkwdonode6 = nodearraylist6
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist8
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               null
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var tassignnode5 = nodearraylist4
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pannotationsnode7 = nodearraylist3
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               null,
+                                               tassignnode5,
+                                               pexprnode6,
+                                               pannotationsnode7
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction469
+private class ReduceAction694
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -17784,339 +26467,394 @@ private class ReduceAction469
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist6
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist3
+                                       assert ptypenode4 isa nullable AType
+                                       var tassignnode5 = nodearraylist4
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
+                                               tassignnode5,
+                                               pexprnode6,
                                                null
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction470
+private class ReduceAction695
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               null,
-                                               null
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist4
+                                       assert ptypenode4 isa nullable AType
+                                       var tassignnode5 = nodearraylist5
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pannotationsnode7 = nodearraylist3
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
+                                               tassignnode5,
+                                               pexprnode6,
+                                               pannotationsnode7
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction471
+private class ReduceAction696
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist4
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tkwdonode6 = nodearraylist6
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               null,
-                                               null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist4
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var tassignnode4 = nodearraylist5
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               tassignnode4,
+                                               pexprnode5
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction472
+private class ReduceAction697
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               null,
-                                               null
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tattridnode3 = nodearraylist1
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var tassignnode4 = nodearraylist2
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode5 = nodearraylist3
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               tassignnode4,
+                                               pexprnode5
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction473
+private class ReduceAction698
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var pclosureidnode1: nullable ASimpleClosureId = new ASimpleClosureId.init_asimpleclosureid(
-                                               tidnode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist5
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var tassignnode4 = nodearraylist6
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               tassignnode4,
+                                               pexprnode5
                                        )
-                                       node_list = pclosureidnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction474
+private class ReduceAction699
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var pclosureidnode1: nullable ABreakClosureId = new ABreakClosureId.init_abreakclosureid(
-                                               tkwbreaknode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist6
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var tassignnode4 = nodearraylist7
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode5 = nodearraylist8
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               tassignnode4,
+                                               pexprnode5
                                        )
-                                       node_list = pclosureidnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction475
+private class ReduceAction701
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode4 = nodearraylist1
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               null,
-                                               null,
-                                               pexprnode4
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tattridnode3 = nodearraylist2
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var tassignnode4 = nodearraylist3
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode5 = nodearraylist4
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               tassignnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction476
+private class ReduceAction702
        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 tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               null,
-                                               null,
-                                               null,
-                                               null
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tattridnode3 = nodearraylist3
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var tassignnode4 = nodearraylist4
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode5 = nodearraylist5
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               tassignnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction477
+private class ReduceAction704
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
                                        assert tidnode3 isa nullable TId
-                                       var pannotationsnode7 = nodearraylist3
-                                       assert pannotationsnode7 isa nullable AAnnotations
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
+                                       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,
-                                               null,
-                                               null,
-                                               null,
-                                               pannotationsnode7
+                                               pexprsnode4,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction478
+private class ReduceAction705
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist1
                                        assert tidnode3 isa nullable TId
-                                       var ptypenode4 = nodearraylist3
-                                       assert ptypenode4 isa nullable AType
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
+                                       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,
-                                               ptypenode4,
-                                               null,
-                                               null,
-                                               null
+                                               pexprsnode4,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction479
+private class ReduceAction706
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist5
                                        assert tidnode3 isa nullable TId
-                                       var ptypenode4 = nodearraylist4
-                                       assert ptypenode4 isa nullable AType
-                                       var pannotationsnode7 = nodearraylist3
-                                       assert pannotationsnode7 isa nullable AAnnotations
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
+                                       var pexprsnode4 = nodearraylist6
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var tassignnode5 = nodearraylist7
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist8
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
                                                tidnode3,
-                                               ptypenode4,
-                                               null,
-                                               null,
-                                               pannotationsnode7
+                                               pexprsnode4,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction480
+private class ReduceAction707
        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 tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist6
                                        assert tidnode3 isa nullable TId
-                                       var tassignnode5 = nodearraylist3
+                                       var pexprsnode4 = nodearraylist7
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var tassignnode5 = nodearraylist8
                                        assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist5
+                                       var pexprnode6 = nodearraylist9
                                        assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
                                                tidnode3,
-                                               null,
+                                               pexprsnode4,
                                                tassignnode5,
-                                               pexprnode6,
-                                               null
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction481
+private class ReduceAction709
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
                                        var tidnode3 = nodearraylist2
                                        assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist3
+                                       assert pexprsnode4 isa nullable AExprs
                                        var tassignnode5 = nodearraylist4
                                        assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist6
+                                       var pexprnode6 = nodearraylist5
                                        assert pexprnode6 isa nullable AExpr
-                                       var pannotationsnode7 = nodearraylist3
-                                       assert pannotationsnode7 isa nullable AAnnotations
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
                                                tidnode3,
-                                               null,
+                                               pexprsnode4,
                                                tassignnode5,
-                                               pexprnode6,
-                                               pannotationsnode7
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction482
+private class ReduceAction710
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18127,65 +26865,54 @@ private class ReduceAction482
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist3
                                        assert tidnode3 isa nullable TId
-                                       var ptypenode4 = nodearraylist3
-                                       assert ptypenode4 isa nullable AType
-                                       var tassignnode5 = nodearraylist4
+                                       var pexprsnode4 = nodearraylist4
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var tassignnode5 = nodearraylist5
                                        assert tassignnode5 isa nullable TAssign
                                        var pexprnode6 = nodearraylist6
                                        assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
                                                tidnode3,
-                                               ptypenode4,
+                                               pexprsnode4,
                                                tassignnode5,
-                                               pexprnode6,
-                                               null
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction483
+private class ReduceAction712
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var ptypenode4 = nodearraylist4
-                                       assert ptypenode4 isa nullable AType
-                                       var tassignnode5 = nodearraylist5
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist7
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pannotationsnode7 = nodearraylist3
-                                       assert pannotationsnode7 isa nullable AAnnotations
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               ptypenode4,
-                                               tassignnode5,
-                                               pexprnode6,
-                                               pannotationsnode7
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprsnode3 = nodearraylist2
+                                       assert pexprsnode3 isa nullable AExprs
+                                       var tassignnode4 = nodearraylist3
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode5 = nodearraylist4
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable ABraAssignExpr = new ABraAssignExpr.init_abraassignexpr(
+                                               pexprnode2,
+                                               pexprsnode3,
+                                               tassignnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction484
+private class ReduceAction713
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18200,21 +26927,21 @@ private class ReduceAction484
                                        assert pexprnode2 isa nullable AExpr
                                        var tattridnode3 = nodearraylist4
                                        assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist5
-                                       assert tassignnode4 isa nullable TAssign
+                                       var passignopnode4 = nodearraylist5
+                                       assert passignopnode4 isa nullable AAssignOp
                                        var pexprnode5 = nodearraylist6
                                        assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
                                                pexprnode2,
                                                tattridnode3,
-                                               tassignnode4,
+                                               passignopnode4,
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction485
+private class ReduceAction714
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18225,21 +26952,21 @@ private class ReduceAction485
                                        var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
                                        var tattridnode3 = nodearraylist1
                                        assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist2
-                                       assert tassignnode4 isa nullable TAssign
+                                       var passignopnode4 = nodearraylist2
+                                       assert passignopnode4 isa nullable AAssignOp
                                        var pexprnode5 = nodearraylist3
                                        assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
                                                pexprnode2,
                                                tattridnode3,
-                                               tassignnode4,
+                                               passignopnode4,
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction486
+private class ReduceAction715
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18253,55 +26980,54 @@ private class ReduceAction486
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist5
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var tassignnode5 = nodearraylist6
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist7
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                       var tattridnode3 = nodearraylist5
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var passignopnode4 = nodearraylist6
+                                       assert passignopnode4 isa nullable AAssignOp
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
                                                pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4,
-                                               tassignnode5,
-                                               pexprnode6
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction487
+private class ReduceAction716
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist2
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var tassignnode5 = nodearraylist3
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist6
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var passignopnode4 = nodearraylist7
+                                       assert passignopnode4 isa nullable AAssignOp
+                                       var pexprnode5 = nodearraylist8
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
                                                pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4,
-                                               tassignnode5,
-                                               pexprnode6
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction488
+private class ReduceAction718
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18310,42 +27036,39 @@ private class ReduceAction488
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprsnode3 = nodearraylist2
-                                       assert pexprsnode3 isa nullable AExprs
-                                       var tassignnode4 = nodearraylist3
-                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tattridnode3 = nodearraylist2
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var passignopnode4 = nodearraylist3
+                                       assert passignopnode4 isa nullable AAssignOp
                                        var pexprnode5 = nodearraylist4
                                        assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable ABraAssignExpr = new ABraAssignExpr.init_abraassignexpr(
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
                                                pexprnode2,
-                                               pexprsnode3,
-                                               tassignnode4,
+                                               tattridnode3,
+                                               passignopnode4,
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction489
+private class ReduceAction719
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist4
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tattridnode3 = nodearraylist3
                                        assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist5
+                                       var passignopnode4 = nodearraylist4
                                        assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist6
+                                       var pexprnode5 = nodearraylist5
                                        assert pexprnode5 isa nullable AExpr
                                        var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
                                                pexprnode2,
@@ -18357,36 +27080,109 @@ private class ReduceAction489
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction490
+private class ReduceAction721
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist5
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var passignopnode5 = nodearraylist6
+                                       assert passignopnode5 isa nullable AAssignOp
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode5,
+                                               pexprnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction722
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode3 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist2
-                                       assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist3
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist2
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var passignopnode5 = nodearraylist3
+                                       assert passignopnode5 isa nullable AAssignOp
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode5,
+                                               pexprnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction723
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist5
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist6
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var passignopnode5 = nodearraylist7
+                                       assert passignopnode5 isa nullable AAssignOp
+                                       var pexprnode6 = nodearraylist8
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction491
+private class ReduceAction724
        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
@@ -18396,13 +27192,13 @@ private class ReduceAction491
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
+                                       var tidnode3 = nodearraylist6
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist5
+                                       var pexprsnode4 = nodearraylist7
                                        assert pexprsnode4 isa nullable AExprs
-                                       var passignopnode5 = nodearraylist6
+                                       var passignopnode5 = nodearraylist8
                                        assert passignopnode5 isa nullable AAssignOp
-                                       var pexprnode6 = nodearraylist7
+                                       var pexprnode6 = nodearraylist9
                                        assert pexprnode6 isa nullable AExpr
                                        var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
@@ -18415,23 +27211,24 @@ private class ReduceAction491
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction492
+private class ReduceAction726
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tidnode3 = nodearraylist1
+                                       var tidnode3 = nodearraylist2
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist2
+                                       var pexprsnode4 = nodearraylist3
                                        assert pexprsnode4 isa nullable AExprs
-                                       var passignopnode5 = nodearraylist3
+                                       var passignopnode5 = nodearraylist4
                                        assert passignopnode5 isa nullable AAssignOp
-                                       var pexprnode6 = nodearraylist4
+                                       var pexprnode6 = nodearraylist5
                                        assert pexprnode6 isa nullable AExpr
                                        var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
@@ -18444,7 +27241,38 @@ private class ReduceAction492
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction493
+private class ReduceAction727
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist4
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var passignopnode5 = nodearraylist5
+                                       assert passignopnode5 isa nullable AAssignOp
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode5,
+                                               pexprnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction729
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18471,7 +27299,7 @@ private class ReduceAction493
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction494
+private class ReduceAction730
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18486,7 +27314,7 @@ private class ReduceAction494
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction495
+private class ReduceAction731
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18501,7 +27329,7 @@ private class ReduceAction495
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction496
+private class ReduceAction732
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18524,7 +27352,7 @@ private class ReduceAction496
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction497
+private class ReduceAction733
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18544,7 +27372,7 @@ private class ReduceAction497
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction498
+private class ReduceAction734
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18575,7 +27403,7 @@ private class ReduceAction498
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction499
+private class ReduceAction735
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18602,7 +27430,7 @@ private class ReduceAction499
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction500
+private class ReduceAction736
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18633,7 +27461,7 @@ private class ReduceAction500
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction501
+private class ReduceAction737
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18660,7 +27488,7 @@ private class ReduceAction501
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction502
+private class ReduceAction738
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18688,7 +27516,7 @@ private class ReduceAction502
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction505
+private class ReduceAction741
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18711,7 +27539,7 @@ private class ReduceAction505
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction506
+private class ReduceAction742
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18731,7 +27559,7 @@ private class ReduceAction506
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction507
+private class ReduceAction743
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18764,7 +27592,7 @@ private class ReduceAction507
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction508
+private class ReduceAction744
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18794,11 +27622,13 @@ private class ReduceAction508
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction509
+private class ReduceAction745
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist15 = p.pop
+                                       var nodearraylist14 = p.pop
                                        var nodearraylist13 = p.pop
                                        var nodearraylist12 = p.pop
                                        var nodearraylist11 = p.pop
@@ -18815,16 +27645,16 @@ private class ReduceAction509
                                        var listnode4 = new Array[Object]
                                        var tkwfornode2 = nodearraylist1
                                        assert tkwfornode2 isa nullable TKwfor
-                                       var listnode3 = nodearraylist4
+                                       var listnode3 = nodearraylist5
                                        assert listnode3 isa Array[Object]
                                        listnode4 = concat(listnode4, listnode3)
-                                       var pexprnode5 = nodearraylist9
+                                       var pexprnode5 = nodearraylist11
                                        assert pexprnode5 isa nullable AExpr
-                                       var tkwdonode6 = nodearraylist11
+                                       var tkwdonode6 = nodearraylist13
                                        assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist12
+                                       var pexprnode7 = nodearraylist14
                                        assert pexprnode7 isa nullable AExpr
-                                       var plabelnode8 = nodearraylist13
+                                       var plabelnode8 = nodearraylist15
                                        assert plabelnode8 isa nullable ALabel
                                        var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
                                                tkwfornode2,
@@ -18838,7 +27668,7 @@ private class ReduceAction509
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction510
+private class ReduceAction746
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18880,11 +27710,13 @@ private class ReduceAction510
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction511
+private class ReduceAction747
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist14 = p.pop
+                                       var nodearraylist13 = p.pop
                                        var nodearraylist12 = p.pop
                                        var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
@@ -18900,14 +27732,14 @@ private class ReduceAction511
                                        var listnode4 = new Array[Object]
                                        var tkwfornode2 = nodearraylist1
                                        assert tkwfornode2 isa nullable TKwfor
-                                       var listnode3 = nodearraylist4
+                                       var listnode3 = nodearraylist5
                                        assert listnode3 isa Array[Object]
                                        listnode4 = concat(listnode4, listnode3)
-                                       var pexprnode5 = nodearraylist9
+                                       var pexprnode5 = nodearraylist11
                                        assert pexprnode5 isa nullable AExpr
-                                       var tkwdonode6 = nodearraylist11
+                                       var tkwdonode6 = nodearraylist13
                                        assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist12
+                                       var pexprnode7 = nodearraylist14
                                        assert pexprnode7 isa nullable AExpr
                                        var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
                                                tkwfornode2,
@@ -18921,7 +27753,7 @@ private class ReduceAction511
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction512
+private class ReduceAction748
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18960,7 +27792,7 @@ private class ReduceAction512
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction513
+private class ReduceAction749
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18985,7 +27817,7 @@ private class ReduceAction513
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction514
+private class ReduceAction750
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19013,7 +27845,7 @@ private class ReduceAction514
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction515
+private class ReduceAction751
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19034,7 +27866,7 @@ private class ReduceAction515
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction516
+private class ReduceAction752
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19058,7 +27890,7 @@ private class ReduceAction516
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction517
+private class ReduceAction753
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19070,7 +27902,7 @@ private class ReduceAction517
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction521
+private class ReduceAction763
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19095,7 +27927,7 @@ private class ReduceAction521
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction523
+private class ReduceAction765
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19135,7 +27967,7 @@ private class ReduceAction523
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction525
+private class ReduceAction767
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19156,7 +27988,7 @@ private class ReduceAction525
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction526
+private class ReduceAction768
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19177,7 +28009,7 @@ private class ReduceAction526
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction527
+private class ReduceAction769
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19199,7 +28031,7 @@ private class ReduceAction527
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction529
+private class ReduceAction771
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19219,7 +28051,7 @@ private class ReduceAction529
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction531
+private class ReduceAction773
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19240,7 +28072,7 @@ private class ReduceAction531
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction532
+private class ReduceAction774
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19261,7 +28093,7 @@ private class ReduceAction532
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction533
+private class ReduceAction775
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19282,7 +28114,7 @@ private class ReduceAction533
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction534
+private class ReduceAction776
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19303,7 +28135,7 @@ private class ReduceAction534
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction535
+private class ReduceAction777
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19324,7 +28156,7 @@ private class ReduceAction535
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction536
+private class ReduceAction778
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19345,7 +28177,7 @@ private class ReduceAction536
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction537
+private class ReduceAction779
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19366,7 +28198,7 @@ private class ReduceAction537
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction538
+private class ReduceAction780
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19387,7 +28219,7 @@ private class ReduceAction538
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction539
+private class ReduceAction781
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19408,7 +28240,7 @@ private class ReduceAction539
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction540
+private class ReduceAction782
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19429,7 +28261,7 @@ private class ReduceAction540
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction541
+private class ReduceAction783
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19450,7 +28282,7 @@ private class ReduceAction541
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction543
+private class ReduceAction785
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19471,7 +28303,7 @@ private class ReduceAction543
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction544
+private class ReduceAction786
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19492,7 +28324,7 @@ private class ReduceAction544
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction546
+private class ReduceAction788
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19513,7 +28345,7 @@ private class ReduceAction546
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction547
+private class ReduceAction789
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19534,7 +28366,7 @@ private class ReduceAction547
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction548
+private class ReduceAction790
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19555,7 +28387,7 @@ private class ReduceAction548
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction550
+private class ReduceAction792
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19575,7 +28407,7 @@ private class ReduceAction550
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction551
+private class ReduceAction793
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19595,7 +28427,7 @@ private class ReduceAction551
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction553
+private class ReduceAction795
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19620,7 +28452,7 @@ private class ReduceAction553
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction554
+private class ReduceAction796
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19645,7 +28477,7 @@ private class ReduceAction554
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction555
+private class ReduceAction797
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19666,18 +28498,196 @@ private class ReduceAction555
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction556
+private class ReduceAction798
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tattridnode4 = nodearraylist6
+                                       assert tattridnode4 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction799
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tattridnode4 = nodearraylist7
+                                       assert tattridnode4 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction801
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tattridnode4 = nodearraylist3
+                                       assert tattridnode4 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction802
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tattridnode4 = nodearraylist4
+                                       assert tattridnode4 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction804
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist4
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction805
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tattridnode3 = nodearraylist1
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction806
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist5
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction807
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist6
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction809
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist4
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tattridnode3 = nodearraylist2
                                        assert tattridnode3 isa nullable TAttrid
                                        var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
                                                pexprnode2,
@@ -19687,14 +28697,16 @@ private class ReduceAction556
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction557
+private class ReduceAction810
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode3 = nodearraylist1
+                                       var tattridnode3 = nodearraylist3
                                        assert tattridnode3 isa nullable TAttrid
                                        var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
                                                pexprnode2,
@@ -19704,7 +28716,7 @@ private class ReduceAction557
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction564
+private class ReduceAction826
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19725,7 +28737,7 @@ private class ReduceAction564
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction565
+private class ReduceAction827
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19755,7 +28767,70 @@ private class ReduceAction565
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction566
+private class ReduceAction828
+       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 tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tidnode4 = nodearraylist7
+                                       assert tidnode4 isa nullable TId
+                                       var pexprsnode5 = nodearraylist8
+                                       assert pexprsnode5 isa nullable AExprs
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               tidnode4,
+                                               pexprsnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction829
+       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 tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tidnode4 = nodearraylist8
+                                       assert tidnode4 isa nullable TId
+                                       var pexprsnode5 = nodearraylist9
+                                       assert pexprsnode5 isa nullable AExprs
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               tidnode4,
+                                               pexprsnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction831
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19788,7 +28863,7 @@ private class ReduceAction566
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction567
+private class ReduceAction832
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19824,7 +28899,7 @@ private class ReduceAction567
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction568
+private class ReduceAction833
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19857,7 +28932,7 @@ private class ReduceAction568
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction569
+private class ReduceAction834
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19893,7 +28968,7 @@ private class ReduceAction569
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction570
+private class ReduceAction835
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19909,7 +28984,7 @@ private class ReduceAction570
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction571
+private class ReduceAction836
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19928,7 +29003,7 @@ private class ReduceAction571
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction572
+private class ReduceAction837
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19944,7 +29019,7 @@ private class ReduceAction572
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction573
+private class ReduceAction838
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19963,7 +29038,7 @@ private class ReduceAction573
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction574
+private class ReduceAction839
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19979,7 +29054,7 @@ private class ReduceAction574
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction575
+private class ReduceAction840
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19998,7 +29073,7 @@ private class ReduceAction575
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction576
+private class ReduceAction841
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20014,7 +29089,7 @@ private class ReduceAction576
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction577
+private class ReduceAction842
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20033,7 +29108,7 @@ private class ReduceAction577
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction578
+private class ReduceAction843
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20049,7 +29124,7 @@ private class ReduceAction578
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction579
+private class ReduceAction844
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20068,7 +29143,7 @@ private class ReduceAction579
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction580
+private class ReduceAction845
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20084,7 +29159,7 @@ private class ReduceAction580
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction581
+private class ReduceAction846
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20103,7 +29178,7 @@ private class ReduceAction581
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction582
+private class ReduceAction847
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20119,7 +29194,7 @@ private class ReduceAction582
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction583
+private class ReduceAction848
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20138,7 +29213,7 @@ private class ReduceAction583
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction584
+private class ReduceAction849
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20154,7 +29229,7 @@ private class ReduceAction584
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction585
+private class ReduceAction850
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20173,7 +29248,7 @@ private class ReduceAction585
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction586
+private class ReduceAction851
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20189,7 +29264,7 @@ private class ReduceAction586
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction587
+private class ReduceAction852
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20208,19 +29283,21 @@ private class ReduceAction587
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction589
+private class ReduceAction854
        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 toparnode2 = nodearraylist1
                                        assert toparnode2 isa nullable TOpar
-                                       var pexprnode3 = nodearraylist2
+                                       var pexprnode3 = nodearraylist3
                                        assert pexprnode3 isa nullable AExpr
-                                       var tcparnode4 = nodearraylist3
+                                       var tcparnode4 = nodearraylist5
                                        assert tcparnode4 isa nullable TCpar
                                        var pexprnode1: nullable AParExpr = new AParExpr.init_aparexpr(
                                                toparnode2,
@@ -20232,22 +29309,24 @@ private class ReduceAction589
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction590
+private class ReduceAction855
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var toparnode2 = nodearraylist1
                                        assert toparnode2 isa nullable TOpar
-                                       var pexprnode3 = nodearraylist2
+                                       var pexprnode3 = nodearraylist3
                                        assert pexprnode3 isa nullable AExpr
-                                       var tcparnode4 = nodearraylist3
+                                       var tcparnode4 = nodearraylist5
                                        assert tcparnode4 isa nullable TCpar
-                                       var pannotationsnode5 = nodearraylist4
+                                       var pannotationsnode5 = nodearraylist6
                                        assert pannotationsnode5 isa nullable AAnnotations
                                        var pexprnode1: nullable AParExpr = new AParExpr.init_aparexpr(
                                                toparnode2,
@@ -20259,7 +29338,7 @@ private class ReduceAction590
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction591
+private class ReduceAction856
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20295,7 +29374,7 @@ private class ReduceAction591
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction592
+private class ReduceAction857
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20336,7 +29415,7 @@ private class ReduceAction592
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction593
+private class ReduceAction858
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20360,7 +29439,7 @@ private class ReduceAction593
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction594
+private class ReduceAction859
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20388,7 +29467,7 @@ private class ReduceAction594
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction595
+private class ReduceAction860
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20415,7 +29494,7 @@ private class ReduceAction595
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction596
+private class ReduceAction861
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20446,7 +29525,7 @@ private class ReduceAction596
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction597
+private class ReduceAction862
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20468,7 +29547,7 @@ private class ReduceAction597
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction598
+private class ReduceAction863
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20483,7 +29562,7 @@ private class ReduceAction598
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction600
+private class ReduceAction865
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20498,7 +29577,7 @@ private class ReduceAction600
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction601
+private class ReduceAction866
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20513,7 +29592,7 @@ private class ReduceAction601
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction602
+private class ReduceAction867
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20538,11 +29617,13 @@ private class ReduceAction602
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction603
+private class ReduceAction868
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
@@ -20552,10 +29633,10 @@ private class ReduceAction603
                                        assert tatnode2 isa nullable TAt
                                        var toparnode3 = nodearraylist2
                                        assert toparnode3 isa nullable TOpar
-                                       var listnode4 = nodearraylist3
+                                       var listnode4 = nodearraylist4
                                        assert listnode4 isa Array[Object]
                                        listnode5 = concat(listnode5, listnode4)
-                                       var tcparnode6 = nodearraylist4
+                                       var tcparnode6 = nodearraylist6
                                        assert tcparnode6 isa nullable TCpar
                                        var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
                                                tatnode2,
@@ -20567,7 +29648,7 @@ private class ReduceAction603
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction604
+private class ReduceAction869
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20587,7 +29668,7 @@ private class ReduceAction604
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction605
+private class ReduceAction870
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20610,11 +29691,13 @@ private class ReduceAction605
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction606
+private class ReduceAction871
        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
@@ -20624,10 +29707,10 @@ private class ReduceAction606
                                        assert patidnode2 isa nullable AAtid
                                        var toparnode3 = nodearraylist2
                                        assert toparnode3 isa nullable TOpar
-                                       var listnode4 = nodearraylist3
+                                       var listnode4 = nodearraylist4
                                        assert listnode4 isa Array[Object]
                                        listnode5 = concat(listnode5, listnode4)
-                                       var tcparnode6 = nodearraylist4
+                                       var tcparnode6 = nodearraylist6
                                        assert tcparnode6 isa nullable TCpar
                                        var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
                                                patidnode2,
@@ -20640,11 +29723,13 @@ private class ReduceAction606
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction607
+private class ReduceAction872
        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
@@ -20655,12 +29740,12 @@ private class ReduceAction607
                                        assert patidnode2 isa nullable AAtid
                                        var toparnode3 = nodearraylist2
                                        assert toparnode3 isa nullable TOpar
-                                       var listnode4 = nodearraylist3
+                                       var listnode4 = nodearraylist4
                                        assert listnode4 isa Array[Object]
                                        listnode5 = concat(listnode5, listnode4)
-                                       var tcparnode6 = nodearraylist4
+                                       var tcparnode6 = nodearraylist6
                                        assert tcparnode6 isa nullable TCpar
-                                       var pannotationsnode7 = nodearraylist5
+                                       var pannotationsnode7 = nodearraylist7
                                        assert pannotationsnode7 isa nullable AAnnotations
                                        var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
                                                patidnode2,
@@ -20673,7 +29758,7 @@ private class ReduceAction607
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction608
+private class ReduceAction873
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20693,7 +29778,7 @@ private class ReduceAction608
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction609
+private class ReduceAction874
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20708,7 +29793,7 @@ private class ReduceAction609
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction610
+private class ReduceAction875
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20727,7 +29812,7 @@ private class ReduceAction610
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction612
+private class ReduceAction877
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20749,7 +29834,7 @@ private class ReduceAction612
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction613
+private class ReduceAction878
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20774,11 +29859,12 @@ private class ReduceAction613
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction614
+private class ReduceAction879
        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
@@ -20790,10 +29876,10 @@ private class ReduceAction614
                                        assert patidnode2 isa nullable AAtid
                                        var toparnode3 = nodearraylist3
                                        assert toparnode3 isa nullable TOpar
-                                       var listnode4 = nodearraylist4
+                                       var listnode4 = nodearraylist5
                                        assert listnode4 isa Array[Object]
                                        listnode5 = concat(listnode5, listnode4)
-                                       var tcparnode6 = nodearraylist5
+                                       var tcparnode6 = nodearraylist6
                                        assert tcparnode6 isa nullable TCpar
                                        var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
                                                patidnode2,
@@ -20806,11 +29892,12 @@ private class ReduceAction614
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction615
+private class ReduceAction880
        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
@@ -20823,12 +29910,12 @@ private class ReduceAction615
                                        assert patidnode2 isa nullable AAtid
                                        var toparnode3 = nodearraylist3
                                        assert toparnode3 isa nullable TOpar
-                                       var listnode4 = nodearraylist4
+                                       var listnode4 = nodearraylist5
                                        assert listnode4 isa Array[Object]
                                        listnode5 = concat(listnode5, listnode4)
-                                       var tcparnode6 = nodearraylist5
+                                       var tcparnode6 = nodearraylist6
                                        assert tcparnode6 isa nullable TCpar
-                                       var pannotationsnode7 = nodearraylist6
+                                       var pannotationsnode7 = nodearraylist7
                                        assert pannotationsnode7 isa nullable AAnnotations
                                        var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
                                                patidnode2,
@@ -20841,7 +29928,7 @@ private class ReduceAction615
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction616
+private class ReduceAction881
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20863,167 +29950,299 @@ private class ReduceAction616
                                                null,
                                                null
                                        )
-                                       node_list = pannotationnode1
+                                       node_list = pannotationnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction882
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pannotationnode1 = nodearraylist3
+                                       node_list = pannotationnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction883
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var patargnode1 = nodearraylist1
+                                       if patargnode1 != null then
+                                               listnode2.add(patargnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction884
+       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 patargnode1 = nodearraylist1
+                                       var listnode2 = nodearraylist2
+                                       assert listnode2 isa Array[Object]
+                                       if patargnode1 != null then
+                                               listnode3.add(patargnode1)
+                                       end
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction885
+       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 patargnode1 = nodearraylist3
+                                       node_list = patargnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction886
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var patargnode1: nullable ATypeAtArg = new ATypeAtArg.init_atypeatarg(
+                                               ptypenode2
+                                       )
+                                       node_list = patargnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction887
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var patargnode1: nullable AExprAtArg = new AExprAtArg.init_aexpratarg(
+                                               pexprnode2
+                                       )
+                                       node_list = patargnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction889
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pannotationsnode2 = nodearraylist1
+                                       assert pannotationsnode2 isa nullable AAnnotations
+                                       var patargnode1: nullable AAtAtArg = new AAtAtArg.init_aatatarg(
+                                               pannotationsnode2
+                                       )
+                                       node_list = patargnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction890
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var patidnode1: nullable AIdAtid = new AIdAtid.init_aidatid(
+                                               tidnode2
+                                       )
+                                       node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction617
+private class ReduceAction891
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pannotationnode1 = nodearraylist3
-                                       node_list = pannotationnode1
+                                       var tidnode2 = nodearraylist2
+                                       assert tidnode2 isa nullable TId
+                                       var patidnode1: nullable AIdAtid = new AIdAtid.init_aidatid(
+                                               tidnode2
+                                       )
+                                       node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction618
+private class ReduceAction892
        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 patargnode1 = nodearraylist1
-                                       if patargnode1 != null then
-                                               listnode2.add(patargnode1)
-                                       end
-                                       node_list = listnode2
+                                       var tidnode2 = nodearraylist3
+                                       assert tidnode2 isa nullable TId
+                                       var patidnode1: nullable AIdAtid = new AIdAtid.init_aidatid(
+                                               tidnode2
+                                       )
+                                       node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction619
+private class ReduceAction894
        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 patargnode1 = nodearraylist1
-                                       var listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       if patargnode1 != null then
-                                               listnode3.add(patargnode1)
-                                       end
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
+                                       var tkwreadablenode2 = nodearraylist1
+                                       assert tkwreadablenode2 isa nullable TKwreadable
+                                       var patidnode1: nullable AKwreadableAtid = new AKwreadableAtid.init_akwreadableatid(
+                                               tkwreadablenode2
+                                       )
+                                       node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction620
+private class ReduceAction895
        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 patargnode1 = nodearraylist3
-                                       node_list = patargnode1
+                                       var tkwreadablenode2 = nodearraylist2
+                                       assert tkwreadablenode2 isa nullable TKwreadable
+                                       var patidnode1: nullable AKwreadableAtid = new AKwreadableAtid.init_akwreadableatid(
+                                               tkwreadablenode2
+                                       )
+                                       node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction621
+private class ReduceAction896
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var ptypenode2 = nodearraylist1
-                                       assert ptypenode2 isa nullable AType
-                                       var patargnode1: nullable ATypeAtArg = new ATypeAtArg.init_atypeatarg(
-                                               ptypenode2
+                                       var tkwreadablenode2 = nodearraylist3
+                                       assert tkwreadablenode2 isa nullable TKwreadable
+                                       var patidnode1: nullable AKwreadableAtid = new AKwreadableAtid.init_akwreadableatid(
+                                               tkwreadablenode2
                                        )
-                                       node_list = patargnode1
+                                       node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction622
+private class ReduceAction898
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var patargnode1: nullable AExprAtArg = new AExprAtArg.init_aexpratarg(
-                                               pexprnode2
+                                       var tkwwritablenode2 = nodearraylist1
+                                       assert tkwwritablenode2 isa nullable TKwwritable
+                                       var patidnode1: nullable AKwwritableAtid = new AKwwritableAtid.init_akwwritableatid(
+                                               tkwwritablenode2
                                        )
-                                       node_list = patargnode1
+                                       node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction624
+private class ReduceAction899
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pannotationsnode2 = nodearraylist1
-                                       assert pannotationsnode2 isa nullable AAnnotations
-                                       var patargnode1: nullable AAtAtArg = new AAtAtArg.init_aatatarg(
-                                               pannotationsnode2
+                                       var tkwwritablenode2 = nodearraylist2
+                                       assert tkwwritablenode2 isa nullable TKwwritable
+                                       var patidnode1: nullable AKwwritableAtid = new AKwwritableAtid.init_akwwritableatid(
+                                               tkwwritablenode2
                                        )
-                                       node_list = patargnode1
+                                       node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction625
+private class ReduceAction900
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var patidnode1: nullable AIdAtid = new AIdAtid.init_aidatid(
-                                               tidnode2
+                                       var tkwwritablenode2 = nodearraylist3
+                                       assert tkwwritablenode2 isa nullable TKwwritable
+                                       var patidnode1: nullable AKwwritableAtid = new AKwwritableAtid.init_akwwritableatid(
+                                               tkwwritablenode2
                                        )
                                        node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction626
+private class ReduceAction902
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tkwreadablenode2 = nodearraylist1
-                                       assert tkwreadablenode2 isa nullable TKwreadable
-                                       var patidnode1: nullable AKwreadableAtid = new AKwreadableAtid.init_akwreadableatid(
-                                               tkwreadablenode2
+                                       var tkwimportnode2 = nodearraylist1
+                                       assert tkwimportnode2 isa nullable TKwimport
+                                       var patidnode1: nullable AKwimportAtid = new AKwimportAtid.init_akwimportatid(
+                                               tkwimportnode2
                                        )
                                        node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction627
+private class ReduceAction903
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwritablenode2 = nodearraylist1
-                                       assert tkwwritablenode2 isa nullable TKwwritable
-                                       var patidnode1: nullable AKwwritableAtid = new AKwwritableAtid.init_akwwritableatid(
-                                               tkwwritablenode2
+                                       var tkwimportnode2 = nodearraylist2
+                                       assert tkwimportnode2 isa nullable TKwimport
+                                       var patidnode1: nullable AKwimportAtid = new AKwimportAtid.init_akwimportatid(
+                                               tkwimportnode2
                                        )
                                        node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction628
+private class ReduceAction904
        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 tkwimportnode2 = nodearraylist1
+                                       var tkwimportnode2 = nodearraylist3
                                        assert tkwimportnode2 isa nullable TKwimport
                                        var patidnode1: nullable AKwimportAtid = new AKwimportAtid.init_akwimportatid(
                                                tkwimportnode2
@@ -21032,7 +30251,7 @@ private class ReduceAction628
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction629
+private class ReduceAction906
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21058,7 +30277,7 @@ private class ReduceAction629
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction630
+private class ReduceAction907
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21080,7 +30299,7 @@ private class ReduceAction630
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction631
+private class ReduceAction908
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21093,7 +30312,7 @@ private class ReduceAction631
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction633
+private class ReduceAction910
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21112,7 +30331,7 @@ private class ReduceAction633
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction636
+private class ReduceAction913
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21138,7 +30357,7 @@ private class ReduceAction636
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction637
+private class ReduceAction914
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21154,7 +30373,7 @@ private class ReduceAction637
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction638
+private class ReduceAction915
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21174,7 +30393,7 @@ private class ReduceAction638
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction639
+private class ReduceAction916
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21188,7 +30407,7 @@ private class ReduceAction639
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction640
+private class ReduceAction917
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21203,7 +30422,7 @@ private class ReduceAction640
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction641
+private class ReduceAction918
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21225,7 +30444,7 @@ private class ReduceAction641
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction642
+private class ReduceAction919
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21243,7 +30462,7 @@ private class ReduceAction642
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction643
+private class ReduceAction920
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21265,7 +30484,7 @@ private class ReduceAction643
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction644
+private class ReduceAction921
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21287,7 +30506,7 @@ private class ReduceAction644
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction645
+private class ReduceAction922
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21313,63 +30532,7 @@ private class ReduceAction645
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction646
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var tclassidnode3 = nodearraylist1
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode2,
-                                               tclassidnode3
-                                       )
-                                       node_list = pqualifiednode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction647
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       listnode3 = concat(listnode3, listnode2)
-                                       var tclassidnode4 = nodearraylist2
-                                       assert tclassidnode4 isa nullable TClassid
-                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode3,
-                                               tclassidnode4
-                                       )
-                                       node_list = pqualifiednode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction648
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       listnode3 = concat(listnode3, listnode2)
-                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode3,
-                                               null
-                                       )
-                                       node_list = pqualifiednode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction649
+private class ReduceAction923
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21382,7 +30545,7 @@ private class ReduceAction649
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction650
+private class ReduceAction924
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21395,7 +30558,7 @@ private class ReduceAction650
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction651
+private class ReduceAction925
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21404,7 +30567,7 @@ private class ReduceAction651
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction653
+private class ReduceAction927
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21421,7 +30584,7 @@ private class ReduceAction653
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction654
+private class ReduceAction928
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21439,7 +30602,7 @@ private class ReduceAction654
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction656
+private class ReduceAction930
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21448,7 +30611,7 @@ private class ReduceAction656
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction657
+private class ReduceAction931
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21459,7 +30622,7 @@ private class ReduceAction657
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction658
+private class ReduceAction932
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21469,7 +30632,7 @@ private class ReduceAction658
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction659
+private class ReduceAction933
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21480,7 +30643,7 @@ private class ReduceAction659
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction931
+private class ReduceAction1313
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21503,7 +30666,31 @@ private class ReduceAction931
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction932
+private class ReduceAction1314
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tattridnode4 = nodearraylist4
+                                       assert tattridnode4 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction1317
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21522,7 +30709,27 @@ private class ReduceAction932
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction933
+private class ReduceAction1318
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist3
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction1321
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21547,7 +30754,33 @@ private class ReduceAction933
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction936
+private class ReduceAction1322
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist4
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction1329
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21570,7 +30803,7 @@ private class ReduceAction936
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction957
+private class ReduceAction1353
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21583,7 +30816,7 @@ private class ReduceAction957
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction958
+private class ReduceAction1354
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21593,7 +30826,7 @@ private class ReduceAction958
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1250
+private class ReduceAction1764
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21608,7 +30841,7 @@ private class ReduceAction1250
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1251
+private class ReduceAction1765
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21627,7 +30860,7 @@ private class ReduceAction1251
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1252
+private class ReduceAction1766
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21642,7 +30875,7 @@ private class ReduceAction1252
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1253
+private class ReduceAction1767
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21661,7 +30894,7 @@ private class ReduceAction1253
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1254
+private class ReduceAction1768
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21676,7 +30909,7 @@ private class ReduceAction1254
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1255
+private class ReduceAction1769
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21695,7 +30928,7 @@ private class ReduceAction1255
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1256
+private class ReduceAction1770
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21710,7 +30943,7 @@ private class ReduceAction1256
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1257
+private class ReduceAction1771
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21729,7 +30962,7 @@ private class ReduceAction1257
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1258
+private class ReduceAction1772
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21744,7 +30977,7 @@ private class ReduceAction1258
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1259
+private class ReduceAction1773
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21763,7 +30996,7 @@ private class ReduceAction1259
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1262
+private class ReduceAction1776
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21778,7 +31011,7 @@ private class ReduceAction1262
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1263
+private class ReduceAction1777
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21797,7 +31030,7 @@ private class ReduceAction1263
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1264
+private class ReduceAction1778
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21812,7 +31045,7 @@ private class ReduceAction1264
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1265
+private class ReduceAction1779
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21831,7 +31064,7 @@ private class ReduceAction1265
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1266
+private class ReduceAction1780
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21846,7 +31079,7 @@ private class ReduceAction1266
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1267
+private class ReduceAction1781
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21865,7 +31098,7 @@ private class ReduceAction1267
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1268
+private class ReduceAction1782
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21880,7 +31113,7 @@ private class ReduceAction1268
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1269
+private class ReduceAction1783
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21899,7 +31132,7 @@ private class ReduceAction1269
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1271
+private class ReduceAction1785
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21918,7 +31151,7 @@ private class ReduceAction1271
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1272
+private class ReduceAction1786
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21933,7 +31166,7 @@ private class ReduceAction1272
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1273
+private class ReduceAction1787
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21952,7 +31185,7 @@ private class ReduceAction1273
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1275
+private class ReduceAction1789
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21970,7 +31203,7 @@ private class ReduceAction1275
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1277
+private class ReduceAction1791
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21989,7 +31222,7 @@ private class ReduceAction1277
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1281
+private class ReduceAction1795
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22008,7 +31241,7 @@ private class ReduceAction1281
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1285
+private class ReduceAction1799
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22027,7 +31260,7 @@ private class ReduceAction1285
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1286
+private class ReduceAction1800
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22042,7 +31275,7 @@ private class ReduceAction1286
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1287
+private class ReduceAction1801
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22061,7 +31294,7 @@ private class ReduceAction1287
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1288
+private class ReduceAction1802
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22076,7 +31309,7 @@ private class ReduceAction1288
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1289
+private class ReduceAction1803
        super ReduceAction
        redef fun action(p: Parser)
        do