parser: regenerate with callrefs
[nit.git] / src / parser / parser.nit
index a58664d..11c341c 100644 (file)
@@ -1,6 +1,6 @@
 # Parser.
 # This file was generated by SableCC (http://www.sablecc.org/).
-module parser is no_warning("missing-doc", "unread-variable")
+module parser is generated, no_warning("missing-doc", "unread-variable")
 
 intrude import parser_prod
 intrude import parser_work
@@ -9,7 +9,7 @@ private import tables
 redef class Parser
        redef fun build_reduce_table
        do
-               var reduce_table = new Array[ReduceAction].with_capacity(1101)
+               var reduce_table = new Array[ReduceAction].with_capacity(1303)
                reduce_table.add new ReduceAction0(0)
                reduce_table.add new ReduceAction1(0)
                reduce_table.add new ReduceAction2(0)
@@ -47,18 +47,18 @@ redef class Parser
                reduce_table.add new ReduceAction34(8)
                reduce_table.add new ReduceAction35(8)
                reduce_table.add new ReduceAction36(8)
-               reduce_table.add new ReduceAction37(9)
+               reduce_table.add new ReduceAction37(8)
                reduce_table.add new ReduceAction38(9)
                reduce_table.add new ReduceAction39(9)
-               reduce_table.add new ReduceAction40(10)
-               reduce_table.add new ReduceAction41(11)
+               reduce_table.add new ReduceAction40(9)
+               reduce_table.add new ReduceAction41(10)
                reduce_table.add new ReduceAction42(11)
-               reduce_table.add new ReduceAction43(12)
-               reduce_table.add new ReduceAction44(13)
+               reduce_table.add new ReduceAction43(11)
+               reduce_table.add new ReduceAction44(12)
                reduce_table.add new ReduceAction45(13)
                reduce_table.add new ReduceAction46(13)
-               reduce_table.add new ReduceAction47(14)
-               reduce_table.add new ReduceAction48(15)
+               reduce_table.add new ReduceAction47(13)
+               reduce_table.add new ReduceAction48(14)
                reduce_table.add new ReduceAction49(15)
                reduce_table.add new ReduceAction50(15)
                reduce_table.add new ReduceAction51(15)
@@ -85,20 +85,20 @@ redef class Parser
                reduce_table.add new ReduceAction72(15)
                reduce_table.add new ReduceAction73(15)
                reduce_table.add new ReduceAction74(15)
-               reduce_table.add new ReduceAction74(15)
-               reduce_table.add new ReduceAction76(16)
-               reduce_table.add new ReduceAction77(16)
+               reduce_table.add new ReduceAction75(15)
+               reduce_table.add new ReduceAction76(15)
+               reduce_table.add new ReduceAction77(15)
+               reduce_table.add new ReduceAction77(15)
+               reduce_table.add new ReduceAction79(16)
+               reduce_table.add new ReduceAction80(16)
                reduce_table.add new ReduceAction22(16)
-               reduce_table.add new ReduceAction76(17)
-               reduce_table.add new ReduceAction80(17)
-               reduce_table.add new ReduceAction81(18)
-               reduce_table.add new ReduceAction82(18)
-               reduce_table.add new ReduceAction83(18)
+               reduce_table.add new ReduceAction79(17)
+               reduce_table.add new ReduceAction83(17)
                reduce_table.add new ReduceAction84(18)
                reduce_table.add new ReduceAction85(18)
-               reduce_table.add new ReduceAction86(19)
-               reduce_table.add new ReduceAction87(19)
-               reduce_table.add new ReduceAction88(19)
+               reduce_table.add new ReduceAction86(18)
+               reduce_table.add new ReduceAction87(18)
+               reduce_table.add new ReduceAction88(18)
                reduce_table.add new ReduceAction89(19)
                reduce_table.add new ReduceAction90(19)
                reduce_table.add new ReduceAction91(19)
@@ -119,143 +119,143 @@ redef class Parser
                reduce_table.add new ReduceAction106(19)
                reduce_table.add new ReduceAction107(19)
                reduce_table.add new ReduceAction108(19)
-               reduce_table.add new ReduceAction109(20)
-               reduce_table.add new ReduceAction110(20)
-               reduce_table.add new ReduceAction111(20)
+               reduce_table.add new ReduceAction109(19)
+               reduce_table.add new ReduceAction110(19)
+               reduce_table.add new ReduceAction111(19)
                reduce_table.add new ReduceAction112(20)
-               reduce_table.add new ReduceAction113(21)
-               reduce_table.add new ReduceAction114(21)
-               reduce_table.add new ReduceAction39(21)
-               reduce_table.add new ReduceAction116(22)
-               reduce_table.add new ReduceAction117(23)
-               reduce_table.add new ReduceAction118(23)
-               reduce_table.add new ReduceAction119(23)
+               reduce_table.add new ReduceAction113(20)
+               reduce_table.add new ReduceAction114(20)
+               reduce_table.add new ReduceAction115(20)
+               reduce_table.add new ReduceAction116(21)
+               reduce_table.add new ReduceAction117(21)
+               reduce_table.add new ReduceAction40(21)
+               reduce_table.add new ReduceAction119(22)
                reduce_table.add new ReduceAction120(23)
                reduce_table.add new ReduceAction121(23)
-               reduce_table.add new ReduceAction122(24)
-               reduce_table.add new ReduceAction123(24)
+               reduce_table.add new ReduceAction122(23)
+               reduce_table.add new ReduceAction123(23)
+               reduce_table.add new ReduceAction124(23)
+               reduce_table.add new ReduceAction125(24)
+               reduce_table.add new ReduceAction126(24)
                reduce_table.add new ReduceAction22(24)
-               reduce_table.add new ReduceAction125(25)
-               reduce_table.add new ReduceAction126(26)
-               reduce_table.add new ReduceAction126(26)
-               reduce_table.add new ReduceAction128(26)
-               reduce_table.add new ReduceAction129(27)
-               reduce_table.add new ReduceAction130(27)
-               reduce_table.add new ReduceAction131(27)
-               reduce_table.add new ReduceAction132(28)
-               reduce_table.add new ReduceAction133(28)
-               reduce_table.add new ReduceAction134(28)
+               reduce_table.add new ReduceAction128(25)
+               reduce_table.add new ReduceAction129(26)
+               reduce_table.add new ReduceAction129(26)
+               reduce_table.add new ReduceAction131(26)
+               reduce_table.add new ReduceAction132(27)
+               reduce_table.add new ReduceAction133(27)
+               reduce_table.add new ReduceAction134(27)
                reduce_table.add new ReduceAction135(28)
                reduce_table.add new ReduceAction136(28)
                reduce_table.add new ReduceAction137(28)
+               reduce_table.add new ReduceAction138(28)
+               reduce_table.add new ReduceAction139(28)
+               reduce_table.add new ReduceAction140(28)
                reduce_table.add new ReduceAction22(29)
-               reduce_table.add new ReduceAction139(29)
-               reduce_table.add new ReduceAction140(30)
-               reduce_table.add new ReduceAction141(31)
-               reduce_table.add new ReduceAction142(31)
-               reduce_table.add new ReduceAction143(32)
+               reduce_table.add new ReduceAction142(29)
+               reduce_table.add new ReduceAction143(30)
+               reduce_table.add new ReduceAction144(31)
+               reduce_table.add new ReduceAction145(31)
+               reduce_table.add new ReduceAction146(32)
                reduce_table.add new ReduceAction22(32)
-               reduce_table.add new ReduceAction145(33)
-               reduce_table.add new ReduceAction146(34)
-               reduce_table.add new ReduceAction147(34)
-               reduce_table.add new ReduceAction148(34)
+               reduce_table.add new ReduceAction148(33)
                reduce_table.add new ReduceAction149(34)
-               reduce_table.add new ReduceAction150(35)
-               reduce_table.add new ReduceAction151(35)
-               reduce_table.add new ReduceAction152(36)
-               reduce_table.add new ReduceAction152(37)
-               reduce_table.add new ReduceAction152(38)
-               reduce_table.add new ReduceAction22(38)
-               reduce_table.add new ReduceAction156(39)
-               reduce_table.add new ReduceAction157(39)
+               reduce_table.add new ReduceAction150(34)
+               reduce_table.add new ReduceAction150(34)
+               reduce_table.add new ReduceAction152(35)
+               reduce_table.add new ReduceAction153(35)
+               reduce_table.add new ReduceAction154(35)
+               reduce_table.add new ReduceAction155(35)
+               reduce_table.add new ReduceAction156(36)
+               reduce_table.add new ReduceAction157(36)
+               reduce_table.add new ReduceAction158(37)
+               reduce_table.add new ReduceAction158(38)
                reduce_table.add new ReduceAction158(39)
-               reduce_table.add new ReduceAction159(39)
-               reduce_table.add new ReduceAction160(40)
-               reduce_table.add new ReduceAction161(40)
-               reduce_table.add new ReduceAction162(41)
-               reduce_table.add new ReduceAction163(41)
-               reduce_table.add new ReduceAction164(42)
-               reduce_table.add new ReduceAction165(42)
-               reduce_table.add new ReduceAction156(43)
-               reduce_table.add new ReduceAction159(44)
-               reduce_table.add new ReduceAction159(44)
-               reduce_table.add new ReduceAction169(44)
-               reduce_table.add new ReduceAction170(44)
-               reduce_table.add new ReduceAction171(44)
-               reduce_table.add new ReduceAction172(44)
-               reduce_table.add new ReduceAction173(44)
-               reduce_table.add new ReduceAction174(44)
-               reduce_table.add new ReduceAction175(44)
-               reduce_table.add new ReduceAction176(44)
-               reduce_table.add new ReduceAction159(44)
-               reduce_table.add new ReduceAction159(44)
-               reduce_table.add new ReduceAction159(44)
-               reduce_table.add new ReduceAction159(44)
-               reduce_table.add new ReduceAction159(44)
-               reduce_table.add new ReduceAction159(44)
-               reduce_table.add new ReduceAction159(44)
-               reduce_table.add new ReduceAction184(44)
-               reduce_table.add new ReduceAction185(44)
-               reduce_table.add new ReduceAction186(44)
-               reduce_table.add new ReduceAction187(44)
-               reduce_table.add new ReduceAction188(44)
-               reduce_table.add new ReduceAction189(44)
-               reduce_table.add new ReduceAction190(44)
-               reduce_table.add new ReduceAction191(44)
-               reduce_table.add new ReduceAction192(44)
-               reduce_table.add new ReduceAction193(44)
-               reduce_table.add new ReduceAction194(44)
-               reduce_table.add new ReduceAction195(44)
-               reduce_table.add new ReduceAction196(44)
-               reduce_table.add new ReduceAction195(44)
-               reduce_table.add new ReduceAction198(44)
-               reduce_table.add new ReduceAction199(44)
-               reduce_table.add new ReduceAction198(44)
-               reduce_table.add new ReduceAction201(44)
+               reduce_table.add new ReduceAction22(39)
+               reduce_table.add new ReduceAction162(40)
+               reduce_table.add new ReduceAction163(40)
+               reduce_table.add new ReduceAction164(40)
+               reduce_table.add new ReduceAction165(40)
+               reduce_table.add new ReduceAction166(41)
+               reduce_table.add new ReduceAction167(41)
+               reduce_table.add new ReduceAction168(42)
+               reduce_table.add new ReduceAction169(42)
+               reduce_table.add new ReduceAction170(43)
+               reduce_table.add new ReduceAction171(43)
+               reduce_table.add new ReduceAction162(44)
+               reduce_table.add new ReduceAction165(45)
+               reduce_table.add new ReduceAction165(45)
+               reduce_table.add new ReduceAction175(45)
+               reduce_table.add new ReduceAction176(45)
+               reduce_table.add new ReduceAction177(45)
+               reduce_table.add new ReduceAction178(45)
+               reduce_table.add new ReduceAction179(45)
+               reduce_table.add new ReduceAction180(45)
+               reduce_table.add new ReduceAction181(45)
+               reduce_table.add new ReduceAction182(45)
+               reduce_table.add new ReduceAction165(45)
+               reduce_table.add new ReduceAction165(45)
+               reduce_table.add new ReduceAction165(45)
+               reduce_table.add new ReduceAction165(45)
+               reduce_table.add new ReduceAction165(45)
+               reduce_table.add new ReduceAction165(45)
+               reduce_table.add new ReduceAction165(45)
+               reduce_table.add new ReduceAction190(45)
+               reduce_table.add new ReduceAction191(45)
+               reduce_table.add new ReduceAction192(45)
+               reduce_table.add new ReduceAction193(45)
+               reduce_table.add new ReduceAction194(45)
+               reduce_table.add new ReduceAction195(45)
+               reduce_table.add new ReduceAction196(45)
+               reduce_table.add new ReduceAction197(45)
+               reduce_table.add new ReduceAction198(45)
+               reduce_table.add new ReduceAction199(45)
+               reduce_table.add new ReduceAction200(45)
+               reduce_table.add new ReduceAction201(45)
                reduce_table.add new ReduceAction202(45)
                reduce_table.add new ReduceAction203(45)
-               reduce_table.add new ReduceAction204(46)
-               reduce_table.add new ReduceAction205(46)
-               reduce_table.add new ReduceAction206(46)
-               reduce_table.add new ReduceAction207(46)
-               reduce_table.add new ReduceAction208(47)
-               reduce_table.add new ReduceAction209(47)
-               reduce_table.add new ReduceAction210(47)
-               reduce_table.add new ReduceAction211(47)
-               reduce_table.add new ReduceAction212(47)
-               reduce_table.add new ReduceAction213(47)
-               reduce_table.add new ReduceAction214(47)
-               reduce_table.add new ReduceAction215(47)
-               reduce_table.add new ReduceAction216(47)
-               reduce_table.add new ReduceAction217(47)
+               reduce_table.add new ReduceAction204(45)
+               reduce_table.add new ReduceAction205(45)
+               reduce_table.add new ReduceAction206(45)
+               reduce_table.add new ReduceAction207(45)
+               reduce_table.add new ReduceAction206(45)
+               reduce_table.add new ReduceAction209(45)
+               reduce_table.add new ReduceAction210(45)
+               reduce_table.add new ReduceAction209(45)
+               reduce_table.add new ReduceAction212(45)
+               reduce_table.add new ReduceAction213(45)
+               reduce_table.add new ReduceAction212(45)
+               reduce_table.add new ReduceAction215(45)
+               reduce_table.add new ReduceAction216(46)
+               reduce_table.add new ReduceAction217(46)
                reduce_table.add new ReduceAction218(47)
                reduce_table.add new ReduceAction219(47)
                reduce_table.add new ReduceAction220(47)
                reduce_table.add new ReduceAction221(47)
-               reduce_table.add new ReduceAction222(47)
-               reduce_table.add new ReduceAction223(47)
-               reduce_table.add new ReduceAction224(47)
-               reduce_table.add new ReduceAction225(47)
-               reduce_table.add new ReduceAction226(47)
-               reduce_table.add new ReduceAction227(47)
-               reduce_table.add new ReduceAction228(47)
-               reduce_table.add new ReduceAction229(47)
-               reduce_table.add new ReduceAction230(47)
-               reduce_table.add new ReduceAction231(47)
-               reduce_table.add new ReduceAction232(47)
-               reduce_table.add new ReduceAction233(47)
-               reduce_table.add new ReduceAction234(47)
-               reduce_table.add new ReduceAction235(47)
-               reduce_table.add new ReduceAction236(47)
-               reduce_table.add new ReduceAction237(47)
-               reduce_table.add new ReduceAction238(47)
-               reduce_table.add new ReduceAction239(47)
-               reduce_table.add new ReduceAction240(47)
-               reduce_table.add new ReduceAction241(47)
-               reduce_table.add new ReduceAction242(47)
-               reduce_table.add new ReduceAction243(47)
-               reduce_table.add new ReduceAction244(47)
-               reduce_table.add new ReduceAction245(47)
+               reduce_table.add new ReduceAction222(48)
+               reduce_table.add new ReduceAction223(48)
+               reduce_table.add new ReduceAction224(48)
+               reduce_table.add new ReduceAction225(48)
+               reduce_table.add new ReduceAction226(48)
+               reduce_table.add new ReduceAction227(48)
+               reduce_table.add new ReduceAction228(48)
+               reduce_table.add new ReduceAction229(48)
+               reduce_table.add new ReduceAction230(48)
+               reduce_table.add new ReduceAction231(48)
+               reduce_table.add new ReduceAction232(48)
+               reduce_table.add new ReduceAction233(48)
+               reduce_table.add new ReduceAction234(48)
+               reduce_table.add new ReduceAction235(48)
+               reduce_table.add new ReduceAction236(48)
+               reduce_table.add new ReduceAction237(48)
+               reduce_table.add new ReduceAction238(48)
+               reduce_table.add new ReduceAction239(48)
+               reduce_table.add new ReduceAction240(48)
+               reduce_table.add new ReduceAction241(48)
+               reduce_table.add new ReduceAction242(48)
+               reduce_table.add new ReduceAction243(48)
+               reduce_table.add new ReduceAction244(48)
+               reduce_table.add new ReduceAction245(48)
                reduce_table.add new ReduceAction246(48)
                reduce_table.add new ReduceAction247(48)
                reduce_table.add new ReduceAction248(48)
@@ -267,111 +267,111 @@ redef class Parser
                reduce_table.add new ReduceAction254(48)
                reduce_table.add new ReduceAction255(48)
                reduce_table.add new ReduceAction256(48)
-               reduce_table.add new ReduceAction257(49)
-               reduce_table.add new ReduceAction258(49)
-               reduce_table.add new ReduceAction259(49)
-               reduce_table.add new ReduceAction260(50)
-               reduce_table.add new ReduceAction261(50)
-               reduce_table.add new ReduceAction262(50)
-               reduce_table.add new ReduceAction263(50)
-               reduce_table.add new ReduceAction264(50)
-               reduce_table.add new ReduceAction265(50)
-               reduce_table.add new ReduceAction266(50)
-               reduce_table.add new ReduceAction267(50)
-               reduce_table.add new ReduceAction158(51)
-               reduce_table.add new ReduceAction269(52)
-               reduce_table.add new ReduceAction270(52)
-               reduce_table.add new ReduceAction271(53)
-               reduce_table.add new ReduceAction272(53)
-               reduce_table.add new ReduceAction273(54)
-               reduce_table.add new ReduceAction274(54)
-               reduce_table.add new ReduceAction275(55)
-               reduce_table.add new ReduceAction276(55)
-               reduce_table.add new ReduceAction277(56)
-               reduce_table.add new ReduceAction278(57)
-               reduce_table.add new ReduceAction279(57)
-               reduce_table.add new ReduceAction280(58)
-               reduce_table.add new ReduceAction281(58)
-               reduce_table.add new ReduceAction159(58)
-               reduce_table.add new ReduceAction283(59)
-               reduce_table.add new ReduceAction284(59)
-               reduce_table.add new ReduceAction285(59)
-               reduce_table.add new ReduceAction286(59)
-               reduce_table.add new ReduceAction287(60)
-               reduce_table.add new ReduceAction159(61)
-               reduce_table.add new ReduceAction289(61)
-               reduce_table.add new ReduceAction159(62)
-               reduce_table.add new ReduceAction291(62)
-               reduce_table.add new ReduceAction292(62)
-               reduce_table.add new ReduceAction293(62)
-               reduce_table.add new ReduceAction294(62)
-               reduce_table.add new ReduceAction159(63)
-               reduce_table.add new ReduceAction296(63)
-               reduce_table.add new ReduceAction159(64)
-               reduce_table.add new ReduceAction298(64)
-               reduce_table.add new ReduceAction299(64)
-               reduce_table.add new ReduceAction300(64)
-               reduce_table.add new ReduceAction301(64)
-               reduce_table.add new ReduceAction302(64)
-               reduce_table.add new ReduceAction303(64)
-               reduce_table.add new ReduceAction304(64)
-               reduce_table.add new ReduceAction305(64)
-               reduce_table.add new ReduceAction159(65)
-               reduce_table.add new ReduceAction307(65)
-               reduce_table.add new ReduceAction159(66)
-               reduce_table.add new ReduceAction309(66)
-               reduce_table.add new ReduceAction159(67)
-               reduce_table.add new ReduceAction311(67)
-               reduce_table.add new ReduceAction159(68)
-               reduce_table.add new ReduceAction313(68)
-               reduce_table.add new ReduceAction314(68)
-               reduce_table.add new ReduceAction159(69)
-               reduce_table.add new ReduceAction316(69)
-               reduce_table.add new ReduceAction317(69)
-               reduce_table.add new ReduceAction159(70)
-               reduce_table.add new ReduceAction319(70)
-               reduce_table.add new ReduceAction320(70)
-               reduce_table.add new ReduceAction321(70)
-               reduce_table.add new ReduceAction159(71)
-               reduce_table.add new ReduceAction323(71)
-               reduce_table.add new ReduceAction159(72)
-               reduce_table.add new ReduceAction325(72)
-               reduce_table.add new ReduceAction326(72)
-               reduce_table.add new ReduceAction327(72)
-               reduce_table.add new ReduceAction328(72)
-               reduce_table.add new ReduceAction159(73)
-               reduce_table.add new ReduceAction330(73)
-               reduce_table.add new ReduceAction331(73)
-               reduce_table.add new ReduceAction332(73)
-               reduce_table.add new ReduceAction333(73)
-               reduce_table.add new ReduceAction159(74)
-               reduce_table.add new ReduceAction335(74)
-               reduce_table.add new ReduceAction336(74)
-               reduce_table.add new ReduceAction184(74)
-               reduce_table.add new ReduceAction338(74)
-               reduce_table.add new ReduceAction185(74)
-               reduce_table.add new ReduceAction340(74)
-               reduce_table.add new ReduceAction186(74)
-               reduce_table.add new ReduceAction342(74)
-               reduce_table.add new ReduceAction187(74)
-               reduce_table.add new ReduceAction344(74)
-               reduce_table.add new ReduceAction188(74)
-               reduce_table.add new ReduceAction346(74)
-               reduce_table.add new ReduceAction189(74)
-               reduce_table.add new ReduceAction348(74)
-               reduce_table.add new ReduceAction190(74)
-               reduce_table.add new ReduceAction350(74)
-               reduce_table.add new ReduceAction191(74)
-               reduce_table.add new ReduceAction352(74)
-               reduce_table.add new ReduceAction192(74)
-               reduce_table.add new ReduceAction354(74)
-               reduce_table.add new ReduceAction193(74)
-               reduce_table.add new ReduceAction356(74)
-               reduce_table.add new ReduceAction194(74)
-               reduce_table.add new ReduceAction358(74)
-               reduce_table.add new ReduceAction359(74)
-               reduce_table.add new ReduceAction360(74)
-               reduce_table.add new ReduceAction361(74)
+               reduce_table.add new ReduceAction257(48)
+               reduce_table.add new ReduceAction258(48)
+               reduce_table.add new ReduceAction259(48)
+               reduce_table.add new ReduceAction260(48)
+               reduce_table.add new ReduceAction261(48)
+               reduce_table.add new ReduceAction262(48)
+               reduce_table.add new ReduceAction263(48)
+               reduce_table.add new ReduceAction264(48)
+               reduce_table.add new ReduceAction265(48)
+               reduce_table.add new ReduceAction266(48)
+               reduce_table.add new ReduceAction267(48)
+               reduce_table.add new ReduceAction268(48)
+               reduce_table.add new ReduceAction269(48)
+               reduce_table.add new ReduceAction270(48)
+               reduce_table.add new ReduceAction271(48)
+               reduce_table.add new ReduceAction272(48)
+               reduce_table.add new ReduceAction273(48)
+               reduce_table.add new ReduceAction274(48)
+               reduce_table.add new ReduceAction275(48)
+               reduce_table.add new ReduceAction276(48)
+               reduce_table.add new ReduceAction277(48)
+               reduce_table.add new ReduceAction278(49)
+               reduce_table.add new ReduceAction279(49)
+               reduce_table.add new ReduceAction280(49)
+               reduce_table.add new ReduceAction281(49)
+               reduce_table.add new ReduceAction282(49)
+               reduce_table.add new ReduceAction283(49)
+               reduce_table.add new ReduceAction284(49)
+               reduce_table.add new ReduceAction285(49)
+               reduce_table.add new ReduceAction286(49)
+               reduce_table.add new ReduceAction287(49)
+               reduce_table.add new ReduceAction288(49)
+               reduce_table.add new ReduceAction289(50)
+               reduce_table.add new ReduceAction290(50)
+               reduce_table.add new ReduceAction291(50)
+               reduce_table.add new ReduceAction292(51)
+               reduce_table.add new ReduceAction293(51)
+               reduce_table.add new ReduceAction294(51)
+               reduce_table.add new ReduceAction295(51)
+               reduce_table.add new ReduceAction296(51)
+               reduce_table.add new ReduceAction297(51)
+               reduce_table.add new ReduceAction298(51)
+               reduce_table.add new ReduceAction299(51)
+               reduce_table.add new ReduceAction164(52)
+               reduce_table.add new ReduceAction301(53)
+               reduce_table.add new ReduceAction302(53)
+               reduce_table.add new ReduceAction303(54)
+               reduce_table.add new ReduceAction304(54)
+               reduce_table.add new ReduceAction305(55)
+               reduce_table.add new ReduceAction306(55)
+               reduce_table.add new ReduceAction307(56)
+               reduce_table.add new ReduceAction308(56)
+               reduce_table.add new ReduceAction309(57)
+               reduce_table.add new ReduceAction310(58)
+               reduce_table.add new ReduceAction311(58)
+               reduce_table.add new ReduceAction312(59)
+               reduce_table.add new ReduceAction313(59)
+               reduce_table.add new ReduceAction165(59)
+               reduce_table.add new ReduceAction315(60)
+               reduce_table.add new ReduceAction316(60)
+               reduce_table.add new ReduceAction317(60)
+               reduce_table.add new ReduceAction318(60)
+               reduce_table.add new ReduceAction319(61)
+               reduce_table.add new ReduceAction165(62)
+               reduce_table.add new ReduceAction321(62)
+               reduce_table.add new ReduceAction165(63)
+               reduce_table.add new ReduceAction323(63)
+               reduce_table.add new ReduceAction324(63)
+               reduce_table.add new ReduceAction325(63)
+               reduce_table.add new ReduceAction326(63)
+               reduce_table.add new ReduceAction165(64)
+               reduce_table.add new ReduceAction328(64)
+               reduce_table.add new ReduceAction165(65)
+               reduce_table.add new ReduceAction330(65)
+               reduce_table.add new ReduceAction331(65)
+               reduce_table.add new ReduceAction332(65)
+               reduce_table.add new ReduceAction333(65)
+               reduce_table.add new ReduceAction334(65)
+               reduce_table.add new ReduceAction335(65)
+               reduce_table.add new ReduceAction336(65)
+               reduce_table.add new ReduceAction337(65)
+               reduce_table.add new ReduceAction165(66)
+               reduce_table.add new ReduceAction339(66)
+               reduce_table.add new ReduceAction165(67)
+               reduce_table.add new ReduceAction341(67)
+               reduce_table.add new ReduceAction165(68)
+               reduce_table.add new ReduceAction343(68)
+               reduce_table.add new ReduceAction165(69)
+               reduce_table.add new ReduceAction345(69)
+               reduce_table.add new ReduceAction346(69)
+               reduce_table.add new ReduceAction165(70)
+               reduce_table.add new ReduceAction348(70)
+               reduce_table.add new ReduceAction349(70)
+               reduce_table.add new ReduceAction165(71)
+               reduce_table.add new ReduceAction351(71)
+               reduce_table.add new ReduceAction352(71)
+               reduce_table.add new ReduceAction353(71)
+               reduce_table.add new ReduceAction165(72)
+               reduce_table.add new ReduceAction355(72)
+               reduce_table.add new ReduceAction165(73)
+               reduce_table.add new ReduceAction357(73)
+               reduce_table.add new ReduceAction358(73)
+               reduce_table.add new ReduceAction359(73)
+               reduce_table.add new ReduceAction360(73)
+               reduce_table.add new ReduceAction165(74)
                reduce_table.add new ReduceAction362(74)
                reduce_table.add new ReduceAction363(74)
                reduce_table.add new ReduceAction364(74)
@@ -381,423 +381,528 @@ redef class Parser
                reduce_table.add new ReduceAction368(74)
                reduce_table.add new ReduceAction369(74)
                reduce_table.add new ReduceAction370(74)
-               reduce_table.add new ReduceAction159(75)
-               reduce_table.add new ReduceAction372(75)
-               reduce_table.add new ReduceAction373(75)
-               reduce_table.add new ReduceAction374(76)
-               reduce_table.add new ReduceAction375(76)
-               reduce_table.add new ReduceAction376(76)
-               reduce_table.add new ReduceAction377(76)
-               reduce_table.add new ReduceAction378(76)
-               reduce_table.add new ReduceAction379(76)
-               reduce_table.add new ReduceAction380(76)
-               reduce_table.add new ReduceAction381(76)
-               reduce_table.add new ReduceAction159(76)
-               reduce_table.add new ReduceAction159(76)
-               reduce_table.add new ReduceAction384(76)
-               reduce_table.add new ReduceAction385(76)
-               reduce_table.add new ReduceAction386(76)
-               reduce_table.add new ReduceAction387(77)
-               reduce_table.add new ReduceAction387(77)
-               reduce_table.add new ReduceAction389(78)
-               reduce_table.add new ReduceAction390(79)
-               reduce_table.add new ReduceAction391(80)
-               reduce_table.add new ReduceAction392(80)
-               reduce_table.add new ReduceAction390(81)
-               reduce_table.add new ReduceAction394(82)
-               reduce_table.add new ReduceAction274(82)
-               reduce_table.add new ReduceAction396(82)
-               reduce_table.add new ReduceAction397(83)
-               reduce_table.add new ReduceAction398(83)
-               reduce_table.add new ReduceAction399(84)
-               reduce_table.add new ReduceAction400(84)
-               reduce_table.add new ReduceAction401(85)
-               reduce_table.add new ReduceAction399(86)
-               reduce_table.add new ReduceAction400(86)
-               reduce_table.add new ReduceAction404(87)
-               reduce_table.add new ReduceAction405(88)
-               reduce_table.add new ReduceAction406(89)
-               reduce_table.add new ReduceAction407(89)
-               reduce_table.add new ReduceAction408(90)
-               reduce_table.add new ReduceAction22(90)
-               reduce_table.add new ReduceAction410(91)
-               reduce_table.add new ReduceAction411(91)
-               reduce_table.add new ReduceAction412(92)
-               reduce_table.add new ReduceAction413(92)
-               reduce_table.add new ReduceAction410(93)
-               reduce_table.add new ReduceAction411(93)
-               reduce_table.add new ReduceAction416(93)
-               reduce_table.add new ReduceAction159(94)
-               reduce_table.add new ReduceAction418(95)
-               reduce_table.add new ReduceAction419(96)
-               reduce_table.add new ReduceAction420(96)
-               reduce_table.add new ReduceAction421(96)
-               reduce_table.add new ReduceAction422(96)
-               reduce_table.add new ReduceAction423(96)
-               reduce_table.add new ReduceAction424(97)
-               reduce_table.add new ReduceAction425(97)
-               reduce_table.add new ReduceAction426(97)
-               reduce_table.add new ReduceAction427(97)
-               reduce_table.add new ReduceAction428(97)
-               reduce_table.add new ReduceAction391(98)
-               reduce_table.add new ReduceAction392(98)
-               reduce_table.add new ReduceAction390(99)
-               reduce_table.add new ReduceAction432(100)
-               reduce_table.add new ReduceAction159(100)
-               reduce_table.add new ReduceAction159(100)
-               reduce_table.add new ReduceAction435(100)
-               reduce_table.add new ReduceAction436(100)
-               reduce_table.add new ReduceAction437(100)
-               reduce_table.add new ReduceAction438(101)
-               reduce_table.add new ReduceAction439(101)
-               reduce_table.add new ReduceAction440(101)
-               reduce_table.add new ReduceAction441(102)
-               reduce_table.add new ReduceAction442(102)
-               reduce_table.add new ReduceAction441(103)
-               reduce_table.add new ReduceAction444(103)
-               reduce_table.add new ReduceAction442(103)
-               reduce_table.add new ReduceAction446(103)
-               reduce_table.add new ReduceAction447(104)
-               reduce_table.add new ReduceAction400(105)
-               reduce_table.add new ReduceAction449(105)
-               reduce_table.add new ReduceAction450(106)
-               reduce_table.add new ReduceAction451(107)
-               reduce_table.add new ReduceAction452(107)
-               reduce_table.add new ReduceAction453(108)
-               reduce_table.add new ReduceAction454(108)
-               reduce_table.add new ReduceAction455(109)
-               reduce_table.add new ReduceAction456(109)
-               reduce_table.add new ReduceAction457(109)
-               reduce_table.add new ReduceAction458(109)
-               reduce_table.add new ReduceAction459(110)
-               reduce_table.add new ReduceAction460(110)
-               reduce_table.add new ReduceAction461(110)
-               reduce_table.add new ReduceAction22(110)
-               reduce_table.add new ReduceAction463(111)
-               reduce_table.add new ReduceAction464(111)
-               reduce_table.add new ReduceAction465(111)
-               reduce_table.add new ReduceAction466(111)
-               reduce_table.add new ReduceAction467(112)
-               reduce_table.add new ReduceAction468(112)
-               reduce_table.add new ReduceAction469(112)
-               reduce_table.add new ReduceAction468(112)
-               reduce_table.add new ReduceAction471(113)
-               reduce_table.add new ReduceAction472(114)
-               reduce_table.add new ReduceAction22(115)
-               reduce_table.add new ReduceAction474(115)
-               reduce_table.add new ReduceAction475(116)
-               reduce_table.add new ReduceAction475(116)
-               reduce_table.add new ReduceAction475(116)
-               reduce_table.add new ReduceAction478(117)
-               reduce_table.add new ReduceAction479(117)
-               reduce_table.add new ReduceAction23(117)
-               reduce_table.add new ReduceAction23(117)
-               reduce_table.add new ReduceAction482(117)
-               reduce_table.add new ReduceAction482(117)
-               reduce_table.add new ReduceAction484(117)
-               reduce_table.add new ReduceAction485(117)
-               reduce_table.add new ReduceAction486(117)
-               reduce_table.add new ReduceAction486(117)
-               reduce_table.add new ReduceAction488(117)
-               reduce_table.add new ReduceAction22(118)
-               reduce_table.add new ReduceAction490(118)
-               reduce_table.add new ReduceAction491(119)
-               reduce_table.add new ReduceAction475(119)
-               reduce_table.add new ReduceAction475(120)
-               reduce_table.add new ReduceAction494(120)
-               reduce_table.add new ReduceAction48(121)
-               reduce_table.add new ReduceAction49(121)
-               reduce_table.add new ReduceAction50(121)
-               reduce_table.add new ReduceAction57(121)
-               reduce_table.add new ReduceAction58(121)
-               reduce_table.add new ReduceAction76(122)
-               reduce_table.add new ReduceAction77(122)
-               reduce_table.add new ReduceAction86(123)
-               reduce_table.add new ReduceAction87(123)
-               reduce_table.add new ReduceAction88(123)
-               reduce_table.add new ReduceAction89(123)
-               reduce_table.add new ReduceAction90(123)
-               reduce_table.add new ReduceAction91(123)
-               reduce_table.add new ReduceAction92(123)
-               reduce_table.add new ReduceAction93(123)
-               reduce_table.add new ReduceAction94(123)
-               reduce_table.add new ReduceAction95(123)
-               reduce_table.add new ReduceAction96(123)
-               reduce_table.add new ReduceAction97(123)
-               reduce_table.add new ReduceAction98(123)
-               reduce_table.add new ReduceAction99(123)
-               reduce_table.add new ReduceAction100(123)
-               reduce_table.add new ReduceAction101(123)
-               reduce_table.add new ReduceAction102(123)
-               reduce_table.add new ReduceAction103(123)
-               reduce_table.add new ReduceAction104(123)
-               reduce_table.add new ReduceAction105(123)
-               reduce_table.add new ReduceAction106(123)
-               reduce_table.add new ReduceAction107(123)
-               reduce_table.add new ReduceAction467(124)
-               reduce_table.add new ReduceAction468(124)
-               reduce_table.add new ReduceAction469(124)
-               reduce_table.add new ReduceAction468(124)
-               reduce_table.add new ReduceAction146(125)
-               reduce_table.add new ReduceAction147(125)
-               reduce_table.add new ReduceAction159(126)
-               reduce_table.add new ReduceAction289(126)
-               reduce_table.add new ReduceAction159(127)
-               reduce_table.add new ReduceAction291(127)
-               reduce_table.add new ReduceAction292(127)
-               reduce_table.add new ReduceAction293(127)
-               reduce_table.add new ReduceAction294(127)
-               reduce_table.add new ReduceAction159(128)
-               reduce_table.add new ReduceAction296(128)
-               reduce_table.add new ReduceAction159(129)
-               reduce_table.add new ReduceAction298(129)
-               reduce_table.add new ReduceAction299(129)
-               reduce_table.add new ReduceAction300(129)
-               reduce_table.add new ReduceAction301(129)
-               reduce_table.add new ReduceAction302(129)
-               reduce_table.add new ReduceAction303(129)
-               reduce_table.add new ReduceAction304(129)
-               reduce_table.add new ReduceAction305(129)
-               reduce_table.add new ReduceAction159(130)
-               reduce_table.add new ReduceAction307(130)
-               reduce_table.add new ReduceAction159(131)
-               reduce_table.add new ReduceAction309(131)
-               reduce_table.add new ReduceAction159(132)
-               reduce_table.add new ReduceAction311(132)
-               reduce_table.add new ReduceAction159(133)
-               reduce_table.add new ReduceAction313(133)
-               reduce_table.add new ReduceAction314(133)
-               reduce_table.add new ReduceAction159(134)
-               reduce_table.add new ReduceAction316(134)
-               reduce_table.add new ReduceAction317(134)
-               reduce_table.add new ReduceAction159(135)
-               reduce_table.add new ReduceAction319(135)
-               reduce_table.add new ReduceAction320(135)
-               reduce_table.add new ReduceAction321(135)
-               reduce_table.add new ReduceAction159(136)
-               reduce_table.add new ReduceAction323(136)
-               reduce_table.add new ReduceAction159(137)
-               reduce_table.add new ReduceAction325(137)
-               reduce_table.add new ReduceAction326(137)
-               reduce_table.add new ReduceAction327(137)
-               reduce_table.add new ReduceAction328(137)
-               reduce_table.add new ReduceAction159(138)
-               reduce_table.add new ReduceAction330(138)
-               reduce_table.add new ReduceAction331(138)
-               reduce_table.add new ReduceAction332(138)
-               reduce_table.add new ReduceAction333(138)
-               reduce_table.add new ReduceAction159(139)
-               reduce_table.add new ReduceAction335(139)
-               reduce_table.add new ReduceAction336(139)
-               reduce_table.add new ReduceAction184(139)
-               reduce_table.add new ReduceAction188(139)
-               reduce_table.add new ReduceAction338(139)
-               reduce_table.add new ReduceAction346(139)
-               reduce_table.add new ReduceAction185(139)
-               reduce_table.add new ReduceAction189(139)
-               reduce_table.add new ReduceAction340(139)
-               reduce_table.add new ReduceAction348(139)
-               reduce_table.add new ReduceAction186(139)
-               reduce_table.add new ReduceAction190(139)
-               reduce_table.add new ReduceAction342(139)
-               reduce_table.add new ReduceAction350(139)
-               reduce_table.add new ReduceAction187(139)
-               reduce_table.add new ReduceAction191(139)
-               reduce_table.add new ReduceAction344(139)
-               reduce_table.add new ReduceAction352(139)
-               reduce_table.add new ReduceAction192(139)
-               reduce_table.add new ReduceAction354(139)
-               reduce_table.add new ReduceAction193(139)
-               reduce_table.add new ReduceAction194(139)
-               reduce_table.add new ReduceAction356(139)
+               reduce_table.add new ReduceAction371(74)
+               reduce_table.add new ReduceAction372(74)
+               reduce_table.add new ReduceAction373(74)
+               reduce_table.add new ReduceAction374(74)
+               reduce_table.add new ReduceAction375(74)
+               reduce_table.add new ReduceAction376(74)
+               reduce_table.add new ReduceAction377(74)
+               reduce_table.add new ReduceAction378(74)
+               reduce_table.add new ReduceAction379(74)
+               reduce_table.add new ReduceAction380(74)
+               reduce_table.add new ReduceAction381(74)
+               reduce_table.add new ReduceAction382(74)
+               reduce_table.add new ReduceAction383(74)
+               reduce_table.add new ReduceAction384(74)
+               reduce_table.add new ReduceAction385(74)
+               reduce_table.add new ReduceAction386(74)
+               reduce_table.add new ReduceAction387(74)
+               reduce_table.add new ReduceAction388(74)
+               reduce_table.add new ReduceAction389(74)
+               reduce_table.add new ReduceAction390(74)
+               reduce_table.add new ReduceAction165(75)
+               reduce_table.add new ReduceAction392(75)
+               reduce_table.add new ReduceAction393(75)
+               reduce_table.add new ReduceAction394(75)
+               reduce_table.add new ReduceAction190(75)
+               reduce_table.add new ReduceAction396(75)
+               reduce_table.add new ReduceAction191(75)
+               reduce_table.add new ReduceAction398(75)
+               reduce_table.add new ReduceAction192(75)
+               reduce_table.add new ReduceAction400(75)
+               reduce_table.add new ReduceAction193(75)
+               reduce_table.add new ReduceAction402(75)
+               reduce_table.add new ReduceAction194(75)
+               reduce_table.add new ReduceAction404(75)
+               reduce_table.add new ReduceAction195(75)
+               reduce_table.add new ReduceAction406(75)
+               reduce_table.add new ReduceAction196(75)
+               reduce_table.add new ReduceAction408(75)
+               reduce_table.add new ReduceAction197(75)
+               reduce_table.add new ReduceAction410(75)
+               reduce_table.add new ReduceAction198(75)
+               reduce_table.add new ReduceAction412(75)
+               reduce_table.add new ReduceAction199(75)
+               reduce_table.add new ReduceAction414(75)
+               reduce_table.add new ReduceAction200(75)
+               reduce_table.add new ReduceAction416(75)
+               reduce_table.add new ReduceAction201(75)
+               reduce_table.add new ReduceAction418(75)
+               reduce_table.add new ReduceAction202(75)
+               reduce_table.add new ReduceAction420(75)
+               reduce_table.add new ReduceAction203(75)
+               reduce_table.add new ReduceAction422(75)
+               reduce_table.add new ReduceAction204(75)
+               reduce_table.add new ReduceAction424(75)
+               reduce_table.add new ReduceAction205(75)
+               reduce_table.add new ReduceAction426(75)
+               reduce_table.add new ReduceAction427(75)
+               reduce_table.add new ReduceAction428(75)
+               reduce_table.add new ReduceAction429(75)
+               reduce_table.add new ReduceAction430(75)
+               reduce_table.add new ReduceAction431(75)
+               reduce_table.add new ReduceAction432(75)
+               reduce_table.add new ReduceAction433(75)
+               reduce_table.add new ReduceAction434(75)
+               reduce_table.add new ReduceAction435(75)
+               reduce_table.add new ReduceAction436(75)
+               reduce_table.add new ReduceAction437(75)
+               reduce_table.add new ReduceAction438(75)
+               reduce_table.add new ReduceAction165(76)
+               reduce_table.add new ReduceAction440(76)
+               reduce_table.add new ReduceAction441(76)
+               reduce_table.add new ReduceAction442(77)
+               reduce_table.add new ReduceAction443(77)
+               reduce_table.add new ReduceAction444(77)
+               reduce_table.add new ReduceAction445(77)
+               reduce_table.add new ReduceAction446(77)
+               reduce_table.add new ReduceAction447(77)
+               reduce_table.add new ReduceAction448(77)
+               reduce_table.add new ReduceAction449(77)
+               reduce_table.add new ReduceAction165(77)
+               reduce_table.add new ReduceAction165(77)
+               reduce_table.add new ReduceAction452(77)
+               reduce_table.add new ReduceAction453(77)
+               reduce_table.add new ReduceAction454(77)
+               reduce_table.add new ReduceAction455(78)
+               reduce_table.add new ReduceAction455(78)
+               reduce_table.add new ReduceAction457(79)
+               reduce_table.add new ReduceAction458(80)
+               reduce_table.add new ReduceAction459(81)
+               reduce_table.add new ReduceAction460(81)
+               reduce_table.add new ReduceAction458(82)
+               reduce_table.add new ReduceAction462(83)
+               reduce_table.add new ReduceAction306(83)
+               reduce_table.add new ReduceAction464(83)
+               reduce_table.add new ReduceAction465(84)
+               reduce_table.add new ReduceAction466(84)
+               reduce_table.add new ReduceAction467(85)
+               reduce_table.add new ReduceAction468(85)
+               reduce_table.add new ReduceAction469(86)
+               reduce_table.add new ReduceAction467(87)
+               reduce_table.add new ReduceAction468(87)
+               reduce_table.add new ReduceAction472(88)
+               reduce_table.add new ReduceAction473(89)
+               reduce_table.add new ReduceAction474(90)
+               reduce_table.add new ReduceAction475(90)
+               reduce_table.add new ReduceAction476(91)
+               reduce_table.add new ReduceAction22(91)
+               reduce_table.add new ReduceAction478(92)
+               reduce_table.add new ReduceAction479(92)
+               reduce_table.add new ReduceAction480(93)
+               reduce_table.add new ReduceAction481(93)
+               reduce_table.add new ReduceAction478(94)
+               reduce_table.add new ReduceAction479(94)
+               reduce_table.add new ReduceAction484(94)
+               reduce_table.add new ReduceAction165(95)
+               reduce_table.add new ReduceAction486(96)
+               reduce_table.add new ReduceAction487(97)
+               reduce_table.add new ReduceAction488(97)
+               reduce_table.add new ReduceAction489(97)
+               reduce_table.add new ReduceAction490(97)
+               reduce_table.add new ReduceAction491(97)
+               reduce_table.add new ReduceAction492(98)
+               reduce_table.add new ReduceAction493(98)
+               reduce_table.add new ReduceAction494(98)
+               reduce_table.add new ReduceAction495(98)
+               reduce_table.add new ReduceAction496(98)
+               reduce_table.add new ReduceAction459(99)
+               reduce_table.add new ReduceAction460(99)
+               reduce_table.add new ReduceAction458(100)
+               reduce_table.add new ReduceAction500(101)
+               reduce_table.add new ReduceAction165(101)
+               reduce_table.add new ReduceAction165(101)
+               reduce_table.add new ReduceAction503(101)
+               reduce_table.add new ReduceAction504(101)
+               reduce_table.add new ReduceAction505(101)
+               reduce_table.add new ReduceAction506(101)
+               reduce_table.add new ReduceAction507(102)
+               reduce_table.add new ReduceAction508(102)
+               reduce_table.add new ReduceAction509(102)
+               reduce_table.add new ReduceAction510(103)
+               reduce_table.add new ReduceAction511(103)
+               reduce_table.add new ReduceAction510(104)
+               reduce_table.add new ReduceAction513(104)
+               reduce_table.add new ReduceAction511(104)
+               reduce_table.add new ReduceAction515(104)
+               reduce_table.add new ReduceAction516(105)
+               reduce_table.add new ReduceAction468(106)
+               reduce_table.add new ReduceAction518(106)
+               reduce_table.add new ReduceAction519(107)
+               reduce_table.add new ReduceAction520(108)
+               reduce_table.add new ReduceAction521(108)
+               reduce_table.add new ReduceAction522(109)
+               reduce_table.add new ReduceAction523(109)
+               reduce_table.add new ReduceAction524(110)
+               reduce_table.add new ReduceAction525(110)
+               reduce_table.add new ReduceAction526(110)
+               reduce_table.add new ReduceAction527(110)
+               reduce_table.add new ReduceAction528(111)
+               reduce_table.add new ReduceAction529(111)
+               reduce_table.add new ReduceAction530(111)
+               reduce_table.add new ReduceAction22(111)
+               reduce_table.add new ReduceAction532(112)
+               reduce_table.add new ReduceAction533(112)
+               reduce_table.add new ReduceAction534(112)
+               reduce_table.add new ReduceAction535(112)
+               reduce_table.add new ReduceAction536(113)
+               reduce_table.add new ReduceAction537(113)
+               reduce_table.add new ReduceAction538(113)
+               reduce_table.add new ReduceAction537(113)
+               reduce_table.add new ReduceAction540(114)
+               reduce_table.add new ReduceAction541(115)
+               reduce_table.add new ReduceAction22(116)
+               reduce_table.add new ReduceAction543(116)
+               reduce_table.add new ReduceAction544(117)
+               reduce_table.add new ReduceAction544(117)
+               reduce_table.add new ReduceAction544(117)
+               reduce_table.add new ReduceAction547(118)
+               reduce_table.add new ReduceAction548(118)
+               reduce_table.add new ReduceAction23(118)
+               reduce_table.add new ReduceAction23(118)
+               reduce_table.add new ReduceAction551(118)
+               reduce_table.add new ReduceAction551(118)
+               reduce_table.add new ReduceAction553(118)
+               reduce_table.add new ReduceAction554(118)
+               reduce_table.add new ReduceAction555(118)
+               reduce_table.add new ReduceAction555(118)
+               reduce_table.add new ReduceAction557(118)
+               reduce_table.add new ReduceAction22(119)
+               reduce_table.add new ReduceAction559(119)
+               reduce_table.add new ReduceAction560(120)
+               reduce_table.add new ReduceAction544(120)
+               reduce_table.add new ReduceAction544(121)
+               reduce_table.add new ReduceAction563(121)
+               reduce_table.add new ReduceAction49(122)
+               reduce_table.add new ReduceAction50(122)
+               reduce_table.add new ReduceAction51(122)
+               reduce_table.add new ReduceAction60(122)
+               reduce_table.add new ReduceAction61(122)
+               reduce_table.add new ReduceAction79(123)
+               reduce_table.add new ReduceAction80(123)
+               reduce_table.add new ReduceAction89(124)
+               reduce_table.add new ReduceAction90(124)
+               reduce_table.add new ReduceAction91(124)
+               reduce_table.add new ReduceAction92(124)
+               reduce_table.add new ReduceAction93(124)
+               reduce_table.add new ReduceAction94(124)
+               reduce_table.add new ReduceAction95(124)
+               reduce_table.add new ReduceAction96(124)
+               reduce_table.add new ReduceAction97(124)
+               reduce_table.add new ReduceAction98(124)
+               reduce_table.add new ReduceAction99(124)
+               reduce_table.add new ReduceAction100(124)
+               reduce_table.add new ReduceAction101(124)
+               reduce_table.add new ReduceAction102(124)
+               reduce_table.add new ReduceAction103(124)
+               reduce_table.add new ReduceAction104(124)
+               reduce_table.add new ReduceAction105(124)
+               reduce_table.add new ReduceAction106(124)
+               reduce_table.add new ReduceAction107(124)
+               reduce_table.add new ReduceAction108(124)
+               reduce_table.add new ReduceAction109(124)
+               reduce_table.add new ReduceAction110(124)
+               reduce_table.add new ReduceAction536(125)
+               reduce_table.add new ReduceAction537(125)
+               reduce_table.add new ReduceAction538(125)
+               reduce_table.add new ReduceAction537(125)
+               reduce_table.add new ReduceAction149(126)
+               reduce_table.add new ReduceAction150(126)
+               reduce_table.add new ReduceAction150(126)
+               reduce_table.add new ReduceAction152(127)
+               reduce_table.add new ReduceAction153(127)
+               reduce_table.add new ReduceAction165(128)
+               reduce_table.add new ReduceAction321(128)
+               reduce_table.add new ReduceAction165(129)
+               reduce_table.add new ReduceAction323(129)
+               reduce_table.add new ReduceAction324(129)
+               reduce_table.add new ReduceAction325(129)
+               reduce_table.add new ReduceAction326(129)
+               reduce_table.add new ReduceAction165(130)
+               reduce_table.add new ReduceAction328(130)
+               reduce_table.add new ReduceAction165(131)
+               reduce_table.add new ReduceAction330(131)
+               reduce_table.add new ReduceAction331(131)
+               reduce_table.add new ReduceAction332(131)
+               reduce_table.add new ReduceAction333(131)
+               reduce_table.add new ReduceAction334(131)
+               reduce_table.add new ReduceAction335(131)
+               reduce_table.add new ReduceAction336(131)
+               reduce_table.add new ReduceAction337(131)
+               reduce_table.add new ReduceAction165(132)
+               reduce_table.add new ReduceAction339(132)
+               reduce_table.add new ReduceAction165(133)
+               reduce_table.add new ReduceAction341(133)
+               reduce_table.add new ReduceAction165(134)
+               reduce_table.add new ReduceAction343(134)
+               reduce_table.add new ReduceAction165(135)
+               reduce_table.add new ReduceAction345(135)
+               reduce_table.add new ReduceAction346(135)
+               reduce_table.add new ReduceAction165(136)
+               reduce_table.add new ReduceAction348(136)
+               reduce_table.add new ReduceAction349(136)
+               reduce_table.add new ReduceAction165(137)
+               reduce_table.add new ReduceAction351(137)
+               reduce_table.add new ReduceAction352(137)
+               reduce_table.add new ReduceAction353(137)
+               reduce_table.add new ReduceAction165(138)
+               reduce_table.add new ReduceAction355(138)
+               reduce_table.add new ReduceAction165(139)
+               reduce_table.add new ReduceAction357(139)
                reduce_table.add new ReduceAction358(139)
+               reduce_table.add new ReduceAction359(139)
                reduce_table.add new ReduceAction360(139)
-               reduce_table.add new ReduceAction361(139)
-               reduce_table.add new ReduceAction362(139)
-               reduce_table.add new ReduceAction363(139)
-               reduce_table.add new ReduceAction364(139)
-               reduce_table.add new ReduceAction365(139)
-               reduce_table.add new ReduceAction366(139)
-               reduce_table.add new ReduceAction367(139)
-               reduce_table.add new ReduceAction368(139)
-               reduce_table.add new ReduceAction369(139)
-               reduce_table.add new ReduceAction370(139)
-               reduce_table.add new ReduceAction159(140)
+               reduce_table.add new ReduceAction165(140)
+               reduce_table.add new ReduceAction362(140)
+               reduce_table.add new ReduceAction363(140)
+               reduce_table.add new ReduceAction364(140)
+               reduce_table.add new ReduceAction365(140)
+               reduce_table.add new ReduceAction366(140)
+               reduce_table.add new ReduceAction367(140)
+               reduce_table.add new ReduceAction375(140)
+               reduce_table.add new ReduceAction383(140)
+               reduce_table.add new ReduceAction368(140)
+               reduce_table.add new ReduceAction376(140)
+               reduce_table.add new ReduceAction384(140)
+               reduce_table.add new ReduceAction369(140)
+               reduce_table.add new ReduceAction377(140)
+               reduce_table.add new ReduceAction385(140)
+               reduce_table.add new ReduceAction370(140)
+               reduce_table.add new ReduceAction378(140)
+               reduce_table.add new ReduceAction386(140)
+               reduce_table.add new ReduceAction371(140)
+               reduce_table.add new ReduceAction379(140)
+               reduce_table.add new ReduceAction387(140)
                reduce_table.add new ReduceAction372(140)
+               reduce_table.add new ReduceAction380(140)
+               reduce_table.add new ReduceAction388(140)
                reduce_table.add new ReduceAction373(140)
-               reduce_table.add new ReduceAction374(141)
-               reduce_table.add new ReduceAction375(141)
-               reduce_table.add new ReduceAction376(141)
-               reduce_table.add new ReduceAction377(141)
-               reduce_table.add new ReduceAction378(141)
-               reduce_table.add new ReduceAction379(141)
-               reduce_table.add new ReduceAction380(141)
-               reduce_table.add new ReduceAction381(141)
-               reduce_table.add new ReduceAction159(141)
-               reduce_table.add new ReduceAction159(141)
-               reduce_table.add new ReduceAction146(142)
-               reduce_table.add new ReduceAction147(142)
-               reduce_table.add new ReduceAction148(142)
-               reduce_table.add new ReduceAction149(142)
-               reduce_table.add new ReduceAction159(143)
-               reduce_table.add new ReduceAction159(143)
-               reduce_table.add new ReduceAction169(143)
-               reduce_table.add new ReduceAction170(143)
-               reduce_table.add new ReduceAction171(143)
-               reduce_table.add new ReduceAction172(143)
-               reduce_table.add new ReduceAction173(143)
-               reduce_table.add new ReduceAction174(143)
-               reduce_table.add new ReduceAction175(143)
-               reduce_table.add new ReduceAction176(143)
-               reduce_table.add new ReduceAction159(143)
-               reduce_table.add new ReduceAction159(143)
-               reduce_table.add new ReduceAction159(143)
-               reduce_table.add new ReduceAction159(143)
-               reduce_table.add new ReduceAction159(143)
-               reduce_table.add new ReduceAction159(143)
-               reduce_table.add new ReduceAction159(143)
-               reduce_table.add new ReduceAction184(143)
-               reduce_table.add new ReduceAction185(143)
-               reduce_table.add new ReduceAction186(143)
-               reduce_table.add new ReduceAction187(143)
-               reduce_table.add new ReduceAction188(143)
-               reduce_table.add new ReduceAction189(143)
-               reduce_table.add new ReduceAction190(143)
-               reduce_table.add new ReduceAction191(143)
-               reduce_table.add new ReduceAction192(143)
-               reduce_table.add new ReduceAction193(143)
-               reduce_table.add new ReduceAction194(143)
-               reduce_table.add new ReduceAction195(143)
-               reduce_table.add new ReduceAction196(143)
-               reduce_table.add new ReduceAction195(143)
-               reduce_table.add new ReduceAction198(143)
-               reduce_table.add new ReduceAction199(143)
-               reduce_table.add new ReduceAction198(143)
-               reduce_table.add new ReduceAction201(143)
-               reduce_table.add new ReduceAction208(144)
-               reduce_table.add new ReduceAction209(144)
-               reduce_table.add new ReduceAction210(144)
-               reduce_table.add new ReduceAction211(144)
-               reduce_table.add new ReduceAction212(144)
-               reduce_table.add new ReduceAction213(144)
-               reduce_table.add new ReduceAction214(144)
-               reduce_table.add new ReduceAction215(144)
-               reduce_table.add new ReduceAction216(144)
-               reduce_table.add new ReduceAction217(144)
-               reduce_table.add new ReduceAction218(144)
-               reduce_table.add new ReduceAction219(144)
-               reduce_table.add new ReduceAction220(144)
-               reduce_table.add new ReduceAction221(144)
-               reduce_table.add new ReduceAction222(144)
-               reduce_table.add new ReduceAction223(144)
-               reduce_table.add new ReduceAction224(144)
-               reduce_table.add new ReduceAction225(144)
-               reduce_table.add new ReduceAction226(144)
-               reduce_table.add new ReduceAction227(144)
-               reduce_table.add new ReduceAction228(144)
-               reduce_table.add new ReduceAction229(144)
-               reduce_table.add new ReduceAction230(144)
-               reduce_table.add new ReduceAction231(144)
-               reduce_table.add new ReduceAction232(144)
-               reduce_table.add new ReduceAction233(144)
-               reduce_table.add new ReduceAction234(144)
-               reduce_table.add new ReduceAction235(144)
-               reduce_table.add new ReduceAction236(144)
-               reduce_table.add new ReduceAction237(144)
-               reduce_table.add new ReduceAction238(144)
-               reduce_table.add new ReduceAction239(144)
-               reduce_table.add new ReduceAction240(144)
-               reduce_table.add new ReduceAction241(144)
-               reduce_table.add new ReduceAction242(144)
-               reduce_table.add new ReduceAction243(144)
-               reduce_table.add new ReduceAction244(144)
-               reduce_table.add new ReduceAction245(144)
-               reduce_table.add new ReduceAction159(145)
-               reduce_table.add new ReduceAction289(145)
-               reduce_table.add new ReduceAction159(146)
-               reduce_table.add new ReduceAction291(146)
-               reduce_table.add new ReduceAction292(146)
-               reduce_table.add new ReduceAction293(146)
-               reduce_table.add new ReduceAction294(146)
-               reduce_table.add new ReduceAction159(147)
-               reduce_table.add new ReduceAction296(147)
-               reduce_table.add new ReduceAction159(148)
-               reduce_table.add new ReduceAction298(148)
-               reduce_table.add new ReduceAction299(148)
-               reduce_table.add new ReduceAction300(148)
-               reduce_table.add new ReduceAction301(148)
-               reduce_table.add new ReduceAction302(148)
-               reduce_table.add new ReduceAction303(148)
-               reduce_table.add new ReduceAction304(148)
-               reduce_table.add new ReduceAction305(148)
-               reduce_table.add new ReduceAction159(149)
-               reduce_table.add new ReduceAction307(149)
-               reduce_table.add new ReduceAction159(150)
-               reduce_table.add new ReduceAction309(150)
-               reduce_table.add new ReduceAction159(151)
-               reduce_table.add new ReduceAction311(151)
-               reduce_table.add new ReduceAction159(152)
-               reduce_table.add new ReduceAction313(152)
-               reduce_table.add new ReduceAction314(152)
-               reduce_table.add new ReduceAction159(153)
-               reduce_table.add new ReduceAction316(153)
-               reduce_table.add new ReduceAction317(153)
-               reduce_table.add new ReduceAction159(154)
-               reduce_table.add new ReduceAction319(154)
-               reduce_table.add new ReduceAction320(154)
-               reduce_table.add new ReduceAction321(154)
-               reduce_table.add new ReduceAction159(155)
-               reduce_table.add new ReduceAction323(155)
-               reduce_table.add new ReduceAction159(156)
-               reduce_table.add new ReduceAction325(156)
-               reduce_table.add new ReduceAction326(156)
-               reduce_table.add new ReduceAction327(156)
-               reduce_table.add new ReduceAction328(156)
-               reduce_table.add new ReduceAction159(157)
-               reduce_table.add new ReduceAction330(157)
-               reduce_table.add new ReduceAction331(157)
-               reduce_table.add new ReduceAction332(157)
-               reduce_table.add new ReduceAction333(157)
-               reduce_table.add new ReduceAction159(158)
-               reduce_table.add new ReduceAction335(158)
-               reduce_table.add new ReduceAction336(158)
-               reduce_table.add new ReduceAction184(158)
-               reduce_table.add new ReduceAction338(158)
-               reduce_table.add new ReduceAction185(158)
-               reduce_table.add new ReduceAction340(158)
-               reduce_table.add new ReduceAction186(158)
-               reduce_table.add new ReduceAction342(158)
-               reduce_table.add new ReduceAction187(158)
-               reduce_table.add new ReduceAction344(158)
-               reduce_table.add new ReduceAction188(158)
-               reduce_table.add new ReduceAction346(158)
-               reduce_table.add new ReduceAction189(158)
-               reduce_table.add new ReduceAction348(158)
-               reduce_table.add new ReduceAction190(158)
-               reduce_table.add new ReduceAction350(158)
-               reduce_table.add new ReduceAction191(158)
-               reduce_table.add new ReduceAction352(158)
-               reduce_table.add new ReduceAction192(158)
-               reduce_table.add new ReduceAction354(158)
-               reduce_table.add new ReduceAction193(158)
-               reduce_table.add new ReduceAction356(158)
-               reduce_table.add new ReduceAction194(158)
-               reduce_table.add new ReduceAction358(158)
-               reduce_table.add new ReduceAction359(158)
-               reduce_table.add new ReduceAction360(158)
-               reduce_table.add new ReduceAction361(158)
-               reduce_table.add new ReduceAction362(158)
-               reduce_table.add new ReduceAction363(158)
-               reduce_table.add new ReduceAction364(158)
-               reduce_table.add new ReduceAction365(158)
-               reduce_table.add new ReduceAction366(158)
-               reduce_table.add new ReduceAction367(158)
-               reduce_table.add new ReduceAction368(158)
-               reduce_table.add new ReduceAction369(158)
-               reduce_table.add new ReduceAction370(158)
-               reduce_table.add new ReduceAction159(159)
-               reduce_table.add new ReduceAction372(159)
-               reduce_table.add new ReduceAction373(159)
+               reduce_table.add new ReduceAction381(140)
+               reduce_table.add new ReduceAction389(140)
+               reduce_table.add new ReduceAction374(140)
+               reduce_table.add new ReduceAction382(140)
+               reduce_table.add new ReduceAction390(140)
+               reduce_table.add new ReduceAction165(141)
+               reduce_table.add new ReduceAction392(141)
+               reduce_table.add new ReduceAction393(141)
+               reduce_table.add new ReduceAction394(141)
+               reduce_table.add new ReduceAction190(141)
+               reduce_table.add new ReduceAction194(141)
+               reduce_table.add new ReduceAction198(141)
+               reduce_table.add new ReduceAction396(141)
+               reduce_table.add new ReduceAction404(141)
+               reduce_table.add new ReduceAction412(141)
+               reduce_table.add new ReduceAction191(141)
+               reduce_table.add new ReduceAction195(141)
+               reduce_table.add new ReduceAction199(141)
+               reduce_table.add new ReduceAction398(141)
+               reduce_table.add new ReduceAction406(141)
+               reduce_table.add new ReduceAction414(141)
+               reduce_table.add new ReduceAction192(141)
+               reduce_table.add new ReduceAction196(141)
+               reduce_table.add new ReduceAction200(141)
+               reduce_table.add new ReduceAction400(141)
+               reduce_table.add new ReduceAction408(141)
+               reduce_table.add new ReduceAction416(141)
+               reduce_table.add new ReduceAction193(141)
+               reduce_table.add new ReduceAction197(141)
+               reduce_table.add new ReduceAction201(141)
+               reduce_table.add new ReduceAction402(141)
+               reduce_table.add new ReduceAction410(141)
+               reduce_table.add new ReduceAction418(141)
+               reduce_table.add new ReduceAction202(141)
+               reduce_table.add new ReduceAction420(141)
+               reduce_table.add new ReduceAction203(141)
+               reduce_table.add new ReduceAction204(141)
+               reduce_table.add new ReduceAction205(141)
+               reduce_table.add new ReduceAction422(141)
+               reduce_table.add new ReduceAction424(141)
+               reduce_table.add new ReduceAction426(141)
+               reduce_table.add new ReduceAction428(141)
+               reduce_table.add new ReduceAction429(141)
+               reduce_table.add new ReduceAction430(141)
+               reduce_table.add new ReduceAction431(141)
+               reduce_table.add new ReduceAction432(141)
+               reduce_table.add new ReduceAction433(141)
+               reduce_table.add new ReduceAction434(141)
+               reduce_table.add new ReduceAction435(141)
+               reduce_table.add new ReduceAction436(141)
+               reduce_table.add new ReduceAction437(141)
+               reduce_table.add new ReduceAction438(141)
+               reduce_table.add new ReduceAction165(142)
+               reduce_table.add new ReduceAction440(142)
+               reduce_table.add new ReduceAction441(142)
+               reduce_table.add new ReduceAction442(143)
+               reduce_table.add new ReduceAction443(143)
+               reduce_table.add new ReduceAction444(143)
+               reduce_table.add new ReduceAction445(143)
+               reduce_table.add new ReduceAction446(143)
+               reduce_table.add new ReduceAction447(143)
+               reduce_table.add new ReduceAction448(143)
+               reduce_table.add new ReduceAction449(143)
+               reduce_table.add new ReduceAction165(143)
+               reduce_table.add new ReduceAction165(143)
+               reduce_table.add new ReduceAction149(144)
+               reduce_table.add new ReduceAction150(144)
+               reduce_table.add new ReduceAction150(144)
+               reduce_table.add new ReduceAction152(145)
+               reduce_table.add new ReduceAction153(145)
+               reduce_table.add new ReduceAction154(145)
+               reduce_table.add new ReduceAction155(145)
+               reduce_table.add new ReduceAction165(146)
+               reduce_table.add new ReduceAction165(146)
+               reduce_table.add new ReduceAction175(146)
+               reduce_table.add new ReduceAction176(146)
+               reduce_table.add new ReduceAction177(146)
+               reduce_table.add new ReduceAction178(146)
+               reduce_table.add new ReduceAction179(146)
+               reduce_table.add new ReduceAction180(146)
+               reduce_table.add new ReduceAction181(146)
+               reduce_table.add new ReduceAction182(146)
+               reduce_table.add new ReduceAction165(146)
+               reduce_table.add new ReduceAction165(146)
+               reduce_table.add new ReduceAction165(146)
+               reduce_table.add new ReduceAction165(146)
+               reduce_table.add new ReduceAction165(146)
+               reduce_table.add new ReduceAction165(146)
+               reduce_table.add new ReduceAction165(146)
+               reduce_table.add new ReduceAction190(146)
+               reduce_table.add new ReduceAction191(146)
+               reduce_table.add new ReduceAction192(146)
+               reduce_table.add new ReduceAction193(146)
+               reduce_table.add new ReduceAction194(146)
+               reduce_table.add new ReduceAction195(146)
+               reduce_table.add new ReduceAction196(146)
+               reduce_table.add new ReduceAction197(146)
+               reduce_table.add new ReduceAction198(146)
+               reduce_table.add new ReduceAction199(146)
+               reduce_table.add new ReduceAction200(146)
+               reduce_table.add new ReduceAction201(146)
+               reduce_table.add new ReduceAction202(146)
+               reduce_table.add new ReduceAction203(146)
+               reduce_table.add new ReduceAction204(146)
+               reduce_table.add new ReduceAction205(146)
+               reduce_table.add new ReduceAction206(146)
+               reduce_table.add new ReduceAction207(146)
+               reduce_table.add new ReduceAction206(146)
+               reduce_table.add new ReduceAction209(146)
+               reduce_table.add new ReduceAction210(146)
+               reduce_table.add new ReduceAction209(146)
+               reduce_table.add new ReduceAction212(146)
+               reduce_table.add new ReduceAction213(146)
+               reduce_table.add new ReduceAction212(146)
+               reduce_table.add new ReduceAction215(146)
+               reduce_table.add new ReduceAction222(147)
+               reduce_table.add new ReduceAction223(147)
+               reduce_table.add new ReduceAction224(147)
+               reduce_table.add new ReduceAction225(147)
+               reduce_table.add new ReduceAction226(147)
+               reduce_table.add new ReduceAction227(147)
+               reduce_table.add new ReduceAction228(147)
+               reduce_table.add new ReduceAction229(147)
+               reduce_table.add new ReduceAction230(147)
+               reduce_table.add new ReduceAction231(147)
+               reduce_table.add new ReduceAction232(147)
+               reduce_table.add new ReduceAction233(147)
+               reduce_table.add new ReduceAction234(147)
+               reduce_table.add new ReduceAction235(147)
+               reduce_table.add new ReduceAction236(147)
+               reduce_table.add new ReduceAction237(147)
+               reduce_table.add new ReduceAction238(147)
+               reduce_table.add new ReduceAction239(147)
+               reduce_table.add new ReduceAction240(147)
+               reduce_table.add new ReduceAction241(147)
+               reduce_table.add new ReduceAction242(147)
+               reduce_table.add new ReduceAction243(147)
+               reduce_table.add new ReduceAction244(147)
+               reduce_table.add new ReduceAction245(147)
+               reduce_table.add new ReduceAction246(147)
+               reduce_table.add new ReduceAction247(147)
+               reduce_table.add new ReduceAction248(147)
+               reduce_table.add new ReduceAction249(147)
+               reduce_table.add new ReduceAction250(147)
+               reduce_table.add new ReduceAction251(147)
+               reduce_table.add new ReduceAction252(147)
+               reduce_table.add new ReduceAction253(147)
+               reduce_table.add new ReduceAction254(147)
+               reduce_table.add new ReduceAction255(147)
+               reduce_table.add new ReduceAction256(147)
+               reduce_table.add new ReduceAction257(147)
+               reduce_table.add new ReduceAction258(147)
+               reduce_table.add new ReduceAction259(147)
+               reduce_table.add new ReduceAction260(147)
+               reduce_table.add new ReduceAction261(147)
+               reduce_table.add new ReduceAction262(147)
+               reduce_table.add new ReduceAction263(147)
+               reduce_table.add new ReduceAction264(147)
+               reduce_table.add new ReduceAction265(147)
+               reduce_table.add new ReduceAction266(147)
+               reduce_table.add new ReduceAction267(147)
+               reduce_table.add new ReduceAction268(147)
+               reduce_table.add new ReduceAction269(147)
+               reduce_table.add new ReduceAction270(147)
+               reduce_table.add new ReduceAction271(147)
+               reduce_table.add new ReduceAction272(147)
+               reduce_table.add new ReduceAction273(147)
+               reduce_table.add new ReduceAction274(147)
+               reduce_table.add new ReduceAction275(147)
+               reduce_table.add new ReduceAction276(147)
+               reduce_table.add new ReduceAction277(147)
+               reduce_table.add new ReduceAction165(148)
+               reduce_table.add new ReduceAction321(148)
+               reduce_table.add new ReduceAction165(149)
+               reduce_table.add new ReduceAction323(149)
+               reduce_table.add new ReduceAction324(149)
+               reduce_table.add new ReduceAction325(149)
+               reduce_table.add new ReduceAction326(149)
+               reduce_table.add new ReduceAction165(150)
+               reduce_table.add new ReduceAction328(150)
+               reduce_table.add new ReduceAction165(151)
+               reduce_table.add new ReduceAction330(151)
+               reduce_table.add new ReduceAction331(151)
+               reduce_table.add new ReduceAction332(151)
+               reduce_table.add new ReduceAction333(151)
+               reduce_table.add new ReduceAction334(151)
+               reduce_table.add new ReduceAction335(151)
+               reduce_table.add new ReduceAction336(151)
+               reduce_table.add new ReduceAction337(151)
+               reduce_table.add new ReduceAction165(152)
+               reduce_table.add new ReduceAction339(152)
+               reduce_table.add new ReduceAction165(153)
+               reduce_table.add new ReduceAction341(153)
+               reduce_table.add new ReduceAction165(154)
+               reduce_table.add new ReduceAction343(154)
+               reduce_table.add new ReduceAction165(155)
+               reduce_table.add new ReduceAction345(155)
+               reduce_table.add new ReduceAction346(155)
+               reduce_table.add new ReduceAction165(156)
+               reduce_table.add new ReduceAction348(156)
+               reduce_table.add new ReduceAction349(156)
+               reduce_table.add new ReduceAction165(157)
+               reduce_table.add new ReduceAction351(157)
+               reduce_table.add new ReduceAction352(157)
+               reduce_table.add new ReduceAction353(157)
+               reduce_table.add new ReduceAction165(158)
+               reduce_table.add new ReduceAction355(158)
+               reduce_table.add new ReduceAction165(159)
+               reduce_table.add new ReduceAction357(159)
+               reduce_table.add new ReduceAction358(159)
+               reduce_table.add new ReduceAction359(159)
+               reduce_table.add new ReduceAction360(159)
+               reduce_table.add new ReduceAction165(160)
+               reduce_table.add new ReduceAction362(160)
+               reduce_table.add new ReduceAction363(160)
+               reduce_table.add new ReduceAction364(160)
+               reduce_table.add new ReduceAction365(160)
+               reduce_table.add new ReduceAction366(160)
+               reduce_table.add new ReduceAction367(160)
+               reduce_table.add new ReduceAction368(160)
+               reduce_table.add new ReduceAction369(160)
+               reduce_table.add new ReduceAction370(160)
+               reduce_table.add new ReduceAction371(160)
+               reduce_table.add new ReduceAction372(160)
+               reduce_table.add new ReduceAction373(160)
                reduce_table.add new ReduceAction374(160)
                reduce_table.add new ReduceAction375(160)
                reduce_table.add new ReduceAction376(160)
@@ -806,311 +911,408 @@ redef class Parser
                reduce_table.add new ReduceAction379(160)
                reduce_table.add new ReduceAction380(160)
                reduce_table.add new ReduceAction381(160)
-               reduce_table.add new ReduceAction159(160)
+               reduce_table.add new ReduceAction382(160)
+               reduce_table.add new ReduceAction383(160)
+               reduce_table.add new ReduceAction384(160)
+               reduce_table.add new ReduceAction385(160)
+               reduce_table.add new ReduceAction386(160)
+               reduce_table.add new ReduceAction387(160)
+               reduce_table.add new ReduceAction388(160)
+               reduce_table.add new ReduceAction389(160)
+               reduce_table.add new ReduceAction390(160)
+               reduce_table.add new ReduceAction165(161)
+               reduce_table.add new ReduceAction392(161)
+               reduce_table.add new ReduceAction393(161)
+               reduce_table.add new ReduceAction394(161)
+               reduce_table.add new ReduceAction190(161)
+               reduce_table.add new ReduceAction396(161)
+               reduce_table.add new ReduceAction191(161)
+               reduce_table.add new ReduceAction398(161)
+               reduce_table.add new ReduceAction192(161)
+               reduce_table.add new ReduceAction400(161)
+               reduce_table.add new ReduceAction193(161)
+               reduce_table.add new ReduceAction402(161)
+               reduce_table.add new ReduceAction194(161)
+               reduce_table.add new ReduceAction404(161)
+               reduce_table.add new ReduceAction195(161)
                reduce_table.add new ReduceAction406(161)
-               reduce_table.add new ReduceAction407(161)
-               reduce_table.add new ReduceAction408(162)
-               reduce_table.add new ReduceAction22(162)
-               reduce_table.add new ReduceAction410(163)
-               reduce_table.add new ReduceAction410(164)
-               reduce_table.add new ReduceAction391(165)
-               reduce_table.add new ReduceAction392(165)
-               reduce_table.add new ReduceAction432(166)
-               reduce_table.add new ReduceAction159(166)
-               reduce_table.add new ReduceAction159(166)
-               reduce_table.add new ReduceAction435(166)
-               reduce_table.add new ReduceAction436(166)
-               reduce_table.add new ReduceAction146(167)
-               reduce_table.add new ReduceAction147(167)
-               reduce_table.add new ReduceAction159(168)
-               reduce_table.add new ReduceAction289(168)
-               reduce_table.add new ReduceAction159(169)
-               reduce_table.add new ReduceAction291(169)
-               reduce_table.add new ReduceAction292(169)
-               reduce_table.add new ReduceAction293(169)
-               reduce_table.add new ReduceAction294(169)
-               reduce_table.add new ReduceAction159(170)
-               reduce_table.add new ReduceAction296(170)
-               reduce_table.add new ReduceAction159(171)
-               reduce_table.add new ReduceAction298(171)
-               reduce_table.add new ReduceAction299(171)
-               reduce_table.add new ReduceAction300(171)
-               reduce_table.add new ReduceAction301(171)
-               reduce_table.add new ReduceAction302(171)
-               reduce_table.add new ReduceAction303(171)
-               reduce_table.add new ReduceAction304(171)
-               reduce_table.add new ReduceAction305(171)
-               reduce_table.add new ReduceAction159(172)
-               reduce_table.add new ReduceAction307(172)
-               reduce_table.add new ReduceAction159(173)
-               reduce_table.add new ReduceAction309(173)
-               reduce_table.add new ReduceAction159(174)
-               reduce_table.add new ReduceAction311(174)
-               reduce_table.add new ReduceAction159(175)
-               reduce_table.add new ReduceAction313(175)
-               reduce_table.add new ReduceAction314(175)
-               reduce_table.add new ReduceAction159(176)
-               reduce_table.add new ReduceAction316(176)
-               reduce_table.add new ReduceAction317(176)
-               reduce_table.add new ReduceAction159(177)
-               reduce_table.add new ReduceAction319(177)
-               reduce_table.add new ReduceAction320(177)
-               reduce_table.add new ReduceAction321(177)
-               reduce_table.add new ReduceAction159(178)
-               reduce_table.add new ReduceAction323(178)
-               reduce_table.add new ReduceAction159(179)
-               reduce_table.add new ReduceAction325(179)
-               reduce_table.add new ReduceAction326(179)
-               reduce_table.add new ReduceAction327(179)
-               reduce_table.add new ReduceAction328(179)
-               reduce_table.add new ReduceAction159(180)
-               reduce_table.add new ReduceAction330(180)
-               reduce_table.add new ReduceAction331(180)
-               reduce_table.add new ReduceAction856(180)
-               reduce_table.add new ReduceAction159(181)
-               reduce_table.add new ReduceAction858(181)
-               reduce_table.add new ReduceAction859(181)
-               reduce_table.add new ReduceAction860(181)
-               reduce_table.add new ReduceAction861(181)
-               reduce_table.add new ReduceAction862(181)
-               reduce_table.add new ReduceAction863(181)
-               reduce_table.add new ReduceAction864(181)
-               reduce_table.add new ReduceAction865(181)
-               reduce_table.add new ReduceAction866(181)
-               reduce_table.add new ReduceAction192(181)
-               reduce_table.add new ReduceAction354(181)
-               reduce_table.add new ReduceAction869(181)
-               reduce_table.add new ReduceAction870(181)
-               reduce_table.add new ReduceAction360(181)
-               reduce_table.add new ReduceAction361(181)
-               reduce_table.add new ReduceAction362(181)
-               reduce_table.add new ReduceAction363(181)
-               reduce_table.add new ReduceAction364(181)
-               reduce_table.add new ReduceAction365(181)
-               reduce_table.add new ReduceAction366(181)
-               reduce_table.add new ReduceAction367(181)
-               reduce_table.add new ReduceAction368(181)
-               reduce_table.add new ReduceAction369(181)
-               reduce_table.add new ReduceAction370(181)
-               reduce_table.add new ReduceAction159(182)
-               reduce_table.add new ReduceAction372(182)
-               reduce_table.add new ReduceAction373(182)
-               reduce_table.add new ReduceAction374(183)
-               reduce_table.add new ReduceAction375(183)
-               reduce_table.add new ReduceAction376(183)
-               reduce_table.add new ReduceAction377(183)
-               reduce_table.add new ReduceAction378(183)
-               reduce_table.add new ReduceAction379(183)
-               reduce_table.add new ReduceAction380(183)
-               reduce_table.add new ReduceAction381(183)
-               reduce_table.add new ReduceAction159(183)
-               reduce_table.add new ReduceAction894(184)
-               reduce_table.add new ReduceAction895(184)
-               reduce_table.add new ReduceAction156(185)
-               reduce_table.add new ReduceAction157(185)
-               reduce_table.add new ReduceAction158(185)
-               reduce_table.add new ReduceAction159(185)
-               reduce_table.add new ReduceAction159(186)
-               reduce_table.add new ReduceAction159(186)
-               reduce_table.add new ReduceAction169(186)
-               reduce_table.add new ReduceAction170(186)
-               reduce_table.add new ReduceAction171(186)
-               reduce_table.add new ReduceAction172(186)
-               reduce_table.add new ReduceAction173(186)
-               reduce_table.add new ReduceAction174(186)
-               reduce_table.add new ReduceAction175(186)
-               reduce_table.add new ReduceAction176(186)
-               reduce_table.add new ReduceAction159(186)
-               reduce_table.add new ReduceAction159(186)
-               reduce_table.add new ReduceAction159(186)
-               reduce_table.add new ReduceAction159(186)
-               reduce_table.add new ReduceAction159(186)
-               reduce_table.add new ReduceAction159(186)
-               reduce_table.add new ReduceAction159(186)
-               reduce_table.add new ReduceAction184(186)
-               reduce_table.add new ReduceAction185(186)
-               reduce_table.add new ReduceAction186(186)
-               reduce_table.add new ReduceAction187(186)
-               reduce_table.add new ReduceAction188(186)
-               reduce_table.add new ReduceAction189(186)
-               reduce_table.add new ReduceAction190(186)
-               reduce_table.add new ReduceAction191(186)
-               reduce_table.add new ReduceAction192(186)
-               reduce_table.add new ReduceAction193(186)
-               reduce_table.add new ReduceAction194(186)
-               reduce_table.add new ReduceAction195(186)
-               reduce_table.add new ReduceAction196(186)
-               reduce_table.add new ReduceAction195(186)
-               reduce_table.add new ReduceAction198(186)
-               reduce_table.add new ReduceAction199(186)
-               reduce_table.add new ReduceAction198(186)
-               reduce_table.add new ReduceAction201(186)
-               reduce_table.add new ReduceAction257(187)
-               reduce_table.add new ReduceAction258(187)
-               reduce_table.add new ReduceAction259(187)
-               reduce_table.add new ReduceAction260(188)
-               reduce_table.add new ReduceAction269(189)
-               reduce_table.add new ReduceAction270(189)
-               reduce_table.add new ReduceAction271(190)
-               reduce_table.add new ReduceAction272(190)
-               reduce_table.add new ReduceAction273(191)
-               reduce_table.add new ReduceAction274(191)
-               reduce_table.add new ReduceAction278(192)
-               reduce_table.add new ReduceAction279(192)
-               reduce_table.add new ReduceAction283(193)
-               reduce_table.add new ReduceAction284(193)
-               reduce_table.add new ReduceAction159(194)
-               reduce_table.add new ReduceAction159(194)
-               reduce_table.add new ReduceAction169(194)
-               reduce_table.add new ReduceAction170(194)
-               reduce_table.add new ReduceAction171(194)
-               reduce_table.add new ReduceAction172(194)
-               reduce_table.add new ReduceAction173(194)
-               reduce_table.add new ReduceAction174(194)
-               reduce_table.add new ReduceAction175(194)
-               reduce_table.add new ReduceAction176(194)
-               reduce_table.add new ReduceAction159(194)
-               reduce_table.add new ReduceAction159(194)
-               reduce_table.add new ReduceAction159(194)
-               reduce_table.add new ReduceAction159(194)
-               reduce_table.add new ReduceAction159(194)
-               reduce_table.add new ReduceAction159(194)
-               reduce_table.add new ReduceAction159(194)
-               reduce_table.add new ReduceAction184(194)
-               reduce_table.add new ReduceAction185(194)
-               reduce_table.add new ReduceAction186(194)
-               reduce_table.add new ReduceAction187(194)
-               reduce_table.add new ReduceAction188(194)
-               reduce_table.add new ReduceAction189(194)
-               reduce_table.add new ReduceAction190(194)
-               reduce_table.add new ReduceAction191(194)
-               reduce_table.add new ReduceAction192(194)
-               reduce_table.add new ReduceAction193(194)
-               reduce_table.add new ReduceAction194(194)
-               reduce_table.add new ReduceAction195(194)
-               reduce_table.add new ReduceAction196(194)
-               reduce_table.add new ReduceAction195(194)
-               reduce_table.add new ReduceAction198(194)
-               reduce_table.add new ReduceAction199(194)
-               reduce_table.add new ReduceAction198(194)
-               reduce_table.add new ReduceAction201(194)
-               reduce_table.add new ReduceAction156(195)
-               reduce_table.add new ReduceAction157(195)
-               reduce_table.add new ReduceAction158(195)
-               reduce_table.add new ReduceAction156(196)
-               reduce_table.add new ReduceAction157(196)
-               reduce_table.add new ReduceAction158(196)
-               reduce_table.add new ReduceAction159(197)
-               reduce_table.add new ReduceAction159(197)
-               reduce_table.add new ReduceAction169(197)
-               reduce_table.add new ReduceAction170(197)
-               reduce_table.add new ReduceAction171(197)
-               reduce_table.add new ReduceAction172(197)
-               reduce_table.add new ReduceAction173(197)
-               reduce_table.add new ReduceAction174(197)
-               reduce_table.add new ReduceAction175(197)
-               reduce_table.add new ReduceAction176(197)
-               reduce_table.add new ReduceAction159(197)
-               reduce_table.add new ReduceAction159(197)
-               reduce_table.add new ReduceAction159(197)
-               reduce_table.add new ReduceAction159(197)
-               reduce_table.add new ReduceAction159(197)
-               reduce_table.add new ReduceAction159(197)
-               reduce_table.add new ReduceAction201(197)
-               reduce_table.add new ReduceAction159(198)
-               reduce_table.add new ReduceAction159(198)
-               reduce_table.add new ReduceAction169(198)
-               reduce_table.add new ReduceAction170(198)
-               reduce_table.add new ReduceAction171(198)
-               reduce_table.add new ReduceAction172(198)
-               reduce_table.add new ReduceAction173(198)
-               reduce_table.add new ReduceAction174(198)
+               reduce_table.add new ReduceAction196(161)
+               reduce_table.add new ReduceAction408(161)
+               reduce_table.add new ReduceAction197(161)
+               reduce_table.add new ReduceAction410(161)
+               reduce_table.add new ReduceAction198(161)
+               reduce_table.add new ReduceAction412(161)
+               reduce_table.add new ReduceAction199(161)
+               reduce_table.add new ReduceAction414(161)
+               reduce_table.add new ReduceAction200(161)
+               reduce_table.add new ReduceAction416(161)
+               reduce_table.add new ReduceAction201(161)
+               reduce_table.add new ReduceAction418(161)
+               reduce_table.add new ReduceAction202(161)
+               reduce_table.add new ReduceAction420(161)
+               reduce_table.add new ReduceAction203(161)
+               reduce_table.add new ReduceAction422(161)
+               reduce_table.add new ReduceAction204(161)
+               reduce_table.add new ReduceAction424(161)
+               reduce_table.add new ReduceAction205(161)
+               reduce_table.add new ReduceAction426(161)
+               reduce_table.add new ReduceAction427(161)
+               reduce_table.add new ReduceAction428(161)
+               reduce_table.add new ReduceAction429(161)
+               reduce_table.add new ReduceAction430(161)
+               reduce_table.add new ReduceAction431(161)
+               reduce_table.add new ReduceAction432(161)
+               reduce_table.add new ReduceAction433(161)
+               reduce_table.add new ReduceAction434(161)
+               reduce_table.add new ReduceAction435(161)
+               reduce_table.add new ReduceAction436(161)
+               reduce_table.add new ReduceAction437(161)
+               reduce_table.add new ReduceAction438(161)
+               reduce_table.add new ReduceAction165(162)
+               reduce_table.add new ReduceAction440(162)
+               reduce_table.add new ReduceAction441(162)
+               reduce_table.add new ReduceAction442(163)
+               reduce_table.add new ReduceAction443(163)
+               reduce_table.add new ReduceAction444(163)
+               reduce_table.add new ReduceAction445(163)
+               reduce_table.add new ReduceAction446(163)
+               reduce_table.add new ReduceAction447(163)
+               reduce_table.add new ReduceAction448(163)
+               reduce_table.add new ReduceAction449(163)
+               reduce_table.add new ReduceAction165(163)
+               reduce_table.add new ReduceAction474(164)
+               reduce_table.add new ReduceAction475(164)
+               reduce_table.add new ReduceAction476(165)
+               reduce_table.add new ReduceAction22(165)
+               reduce_table.add new ReduceAction478(166)
+               reduce_table.add new ReduceAction478(167)
+               reduce_table.add new ReduceAction459(168)
+               reduce_table.add new ReduceAction460(168)
+               reduce_table.add new ReduceAction500(169)
+               reduce_table.add new ReduceAction165(169)
+               reduce_table.add new ReduceAction165(169)
+               reduce_table.add new ReduceAction503(169)
+               reduce_table.add new ReduceAction504(169)
+               reduce_table.add new ReduceAction505(169)
+               reduce_table.add new ReduceAction149(170)
+               reduce_table.add new ReduceAction150(170)
+               reduce_table.add new ReduceAction150(170)
+               reduce_table.add new ReduceAction152(171)
+               reduce_table.add new ReduceAction153(171)
+               reduce_table.add new ReduceAction165(172)
+               reduce_table.add new ReduceAction321(172)
+               reduce_table.add new ReduceAction165(173)
+               reduce_table.add new ReduceAction323(173)
+               reduce_table.add new ReduceAction324(173)
+               reduce_table.add new ReduceAction325(173)
+               reduce_table.add new ReduceAction326(173)
+               reduce_table.add new ReduceAction165(174)
+               reduce_table.add new ReduceAction328(174)
+               reduce_table.add new ReduceAction165(175)
+               reduce_table.add new ReduceAction330(175)
+               reduce_table.add new ReduceAction331(175)
+               reduce_table.add new ReduceAction332(175)
+               reduce_table.add new ReduceAction333(175)
+               reduce_table.add new ReduceAction334(175)
+               reduce_table.add new ReduceAction335(175)
+               reduce_table.add new ReduceAction336(175)
+               reduce_table.add new ReduceAction337(175)
+               reduce_table.add new ReduceAction165(176)
+               reduce_table.add new ReduceAction339(176)
+               reduce_table.add new ReduceAction165(177)
+               reduce_table.add new ReduceAction341(177)
+               reduce_table.add new ReduceAction165(178)
+               reduce_table.add new ReduceAction343(178)
+               reduce_table.add new ReduceAction165(179)
+               reduce_table.add new ReduceAction345(179)
+               reduce_table.add new ReduceAction346(179)
+               reduce_table.add new ReduceAction165(180)
+               reduce_table.add new ReduceAction348(180)
+               reduce_table.add new ReduceAction349(180)
+               reduce_table.add new ReduceAction165(181)
+               reduce_table.add new ReduceAction351(181)
+               reduce_table.add new ReduceAction352(181)
+               reduce_table.add new ReduceAction353(181)
+               reduce_table.add new ReduceAction165(182)
+               reduce_table.add new ReduceAction355(182)
+               reduce_table.add new ReduceAction165(183)
+               reduce_table.add new ReduceAction357(183)
+               reduce_table.add new ReduceAction358(183)
+               reduce_table.add new ReduceAction359(183)
+               reduce_table.add new ReduceAction360(183)
+               reduce_table.add new ReduceAction165(184)
+               reduce_table.add new ReduceAction362(184)
+               reduce_table.add new ReduceAction363(184)
+               reduce_table.add new ReduceAction1033(184)
+               reduce_table.add new ReduceAction1034(184)
+               reduce_table.add new ReduceAction1035(184)
+               reduce_table.add new ReduceAction1036(184)
+               reduce_table.add new ReduceAction1037(184)
+               reduce_table.add new ReduceAction1038(184)
+               reduce_table.add new ReduceAction1039(184)
+               reduce_table.add new ReduceAction1040(184)
+               reduce_table.add new ReduceAction1041(184)
+               reduce_table.add new ReduceAction165(185)
+               reduce_table.add new ReduceAction1043(185)
+               reduce_table.add new ReduceAction1044(185)
+               reduce_table.add new ReduceAction1045(185)
+               reduce_table.add new ReduceAction1046(185)
+               reduce_table.add new ReduceAction1047(185)
+               reduce_table.add new ReduceAction1048(185)
+               reduce_table.add new ReduceAction1049(185)
+               reduce_table.add new ReduceAction1050(185)
+               reduce_table.add new ReduceAction1051(185)
+               reduce_table.add new ReduceAction202(185)
+               reduce_table.add new ReduceAction420(185)
+               reduce_table.add new ReduceAction1054(185)
+               reduce_table.add new ReduceAction1055(185)
+               reduce_table.add new ReduceAction428(185)
+               reduce_table.add new ReduceAction429(185)
+               reduce_table.add new ReduceAction430(185)
+               reduce_table.add new ReduceAction431(185)
+               reduce_table.add new ReduceAction432(185)
+               reduce_table.add new ReduceAction433(185)
+               reduce_table.add new ReduceAction434(185)
+               reduce_table.add new ReduceAction435(185)
+               reduce_table.add new ReduceAction436(185)
+               reduce_table.add new ReduceAction437(185)
+               reduce_table.add new ReduceAction438(185)
+               reduce_table.add new ReduceAction165(186)
+               reduce_table.add new ReduceAction440(186)
+               reduce_table.add new ReduceAction441(186)
+               reduce_table.add new ReduceAction442(187)
+               reduce_table.add new ReduceAction443(187)
+               reduce_table.add new ReduceAction444(187)
+               reduce_table.add new ReduceAction445(187)
+               reduce_table.add new ReduceAction446(187)
+               reduce_table.add new ReduceAction447(187)
+               reduce_table.add new ReduceAction448(187)
+               reduce_table.add new ReduceAction449(187)
+               reduce_table.add new ReduceAction165(187)
+               reduce_table.add new ReduceAction1079(188)
+               reduce_table.add new ReduceAction1080(188)
+               reduce_table.add new ReduceAction1081(188)
+               reduce_table.add new ReduceAction162(189)
+               reduce_table.add new ReduceAction163(189)
+               reduce_table.add new ReduceAction164(189)
+               reduce_table.add new ReduceAction165(189)
+               reduce_table.add new ReduceAction165(190)
+               reduce_table.add new ReduceAction165(190)
+               reduce_table.add new ReduceAction175(190)
+               reduce_table.add new ReduceAction176(190)
+               reduce_table.add new ReduceAction177(190)
+               reduce_table.add new ReduceAction178(190)
+               reduce_table.add new ReduceAction179(190)
+               reduce_table.add new ReduceAction180(190)
+               reduce_table.add new ReduceAction181(190)
+               reduce_table.add new ReduceAction182(190)
+               reduce_table.add new ReduceAction165(190)
+               reduce_table.add new ReduceAction165(190)
+               reduce_table.add new ReduceAction165(190)
+               reduce_table.add new ReduceAction165(190)
+               reduce_table.add new ReduceAction165(190)
+               reduce_table.add new ReduceAction165(190)
+               reduce_table.add new ReduceAction165(190)
+               reduce_table.add new ReduceAction190(190)
+               reduce_table.add new ReduceAction191(190)
+               reduce_table.add new ReduceAction192(190)
+               reduce_table.add new ReduceAction193(190)
+               reduce_table.add new ReduceAction194(190)
+               reduce_table.add new ReduceAction195(190)
+               reduce_table.add new ReduceAction196(190)
+               reduce_table.add new ReduceAction197(190)
+               reduce_table.add new ReduceAction198(190)
+               reduce_table.add new ReduceAction199(190)
+               reduce_table.add new ReduceAction200(190)
+               reduce_table.add new ReduceAction201(190)
+               reduce_table.add new ReduceAction202(190)
+               reduce_table.add new ReduceAction203(190)
+               reduce_table.add new ReduceAction204(190)
+               reduce_table.add new ReduceAction205(190)
+               reduce_table.add new ReduceAction206(190)
+               reduce_table.add new ReduceAction207(190)
+               reduce_table.add new ReduceAction206(190)
+               reduce_table.add new ReduceAction209(190)
+               reduce_table.add new ReduceAction210(190)
+               reduce_table.add new ReduceAction209(190)
+               reduce_table.add new ReduceAction212(190)
+               reduce_table.add new ReduceAction213(190)
+               reduce_table.add new ReduceAction212(190)
+               reduce_table.add new ReduceAction215(190)
+               reduce_table.add new ReduceAction289(191)
+               reduce_table.add new ReduceAction290(191)
+               reduce_table.add new ReduceAction291(191)
+               reduce_table.add new ReduceAction292(192)
+               reduce_table.add new ReduceAction301(193)
+               reduce_table.add new ReduceAction302(193)
+               reduce_table.add new ReduceAction303(194)
+               reduce_table.add new ReduceAction304(194)
+               reduce_table.add new ReduceAction305(195)
+               reduce_table.add new ReduceAction306(195)
+               reduce_table.add new ReduceAction310(196)
+               reduce_table.add new ReduceAction311(196)
+               reduce_table.add new ReduceAction315(197)
+               reduce_table.add new ReduceAction316(197)
+               reduce_table.add new ReduceAction165(198)
+               reduce_table.add new ReduceAction165(198)
                reduce_table.add new ReduceAction175(198)
                reduce_table.add new ReduceAction176(198)
-               reduce_table.add new ReduceAction159(198)
-               reduce_table.add new ReduceAction159(198)
-               reduce_table.add new ReduceAction159(198)
-               reduce_table.add new ReduceAction159(198)
-               reduce_table.add new ReduceAction159(198)
-               reduce_table.add new ReduceAction159(198)
+               reduce_table.add new ReduceAction177(198)
+               reduce_table.add new ReduceAction178(198)
+               reduce_table.add new ReduceAction179(198)
+               reduce_table.add new ReduceAction180(198)
+               reduce_table.add new ReduceAction181(198)
+               reduce_table.add new ReduceAction182(198)
+               reduce_table.add new ReduceAction165(198)
+               reduce_table.add new ReduceAction165(198)
+               reduce_table.add new ReduceAction165(198)
+               reduce_table.add new ReduceAction165(198)
+               reduce_table.add new ReduceAction165(198)
+               reduce_table.add new ReduceAction165(198)
+               reduce_table.add new ReduceAction165(198)
+               reduce_table.add new ReduceAction190(198)
+               reduce_table.add new ReduceAction191(198)
+               reduce_table.add new ReduceAction192(198)
+               reduce_table.add new ReduceAction193(198)
+               reduce_table.add new ReduceAction194(198)
+               reduce_table.add new ReduceAction195(198)
+               reduce_table.add new ReduceAction196(198)
+               reduce_table.add new ReduceAction197(198)
+               reduce_table.add new ReduceAction198(198)
+               reduce_table.add new ReduceAction199(198)
+               reduce_table.add new ReduceAction200(198)
                reduce_table.add new ReduceAction201(198)
-               reduce_table.add new ReduceAction159(199)
-               reduce_table.add new ReduceAction159(199)
-               reduce_table.add new ReduceAction169(199)
-               reduce_table.add new ReduceAction170(199)
-               reduce_table.add new ReduceAction171(199)
-               reduce_table.add new ReduceAction172(199)
-               reduce_table.add new ReduceAction173(199)
-               reduce_table.add new ReduceAction174(199)
-               reduce_table.add new ReduceAction175(199)
-               reduce_table.add new ReduceAction176(199)
-               reduce_table.add new ReduceAction159(199)
-               reduce_table.add new ReduceAction159(199)
-               reduce_table.add new ReduceAction159(199)
-               reduce_table.add new ReduceAction159(199)
-               reduce_table.add new ReduceAction159(199)
-               reduce_table.add new ReduceAction159(199)
-               reduce_table.add new ReduceAction201(199)
-               reduce_table.add new ReduceAction159(200)
-               reduce_table.add new ReduceAction159(200)
-               reduce_table.add new ReduceAction169(200)
-               reduce_table.add new ReduceAction170(200)
-               reduce_table.add new ReduceAction171(200)
-               reduce_table.add new ReduceAction172(200)
-               reduce_table.add new ReduceAction173(200)
-               reduce_table.add new ReduceAction174(200)
-               reduce_table.add new ReduceAction175(200)
-               reduce_table.add new ReduceAction176(200)
-               reduce_table.add new ReduceAction159(200)
-               reduce_table.add new ReduceAction159(200)
-               reduce_table.add new ReduceAction159(200)
-               reduce_table.add new ReduceAction159(200)
-               reduce_table.add new ReduceAction159(200)
-               reduce_table.add new ReduceAction159(200)
-               reduce_table.add new ReduceAction201(200)
-               reduce_table.add new ReduceAction438(201)
-               reduce_table.add new ReduceAction440(201)
-               reduce_table.add new ReduceAction478(202)
-               reduce_table.add new ReduceAction479(202)
-               reduce_table.add new ReduceAction23(202)
-               reduce_table.add new ReduceAction1063(203)
-               reduce_table.add new ReduceAction1064(203)
-               reduce_table.add new ReduceAction1065(204)
-               reduce_table.add new ReduceAction1066(204)
-               reduce_table.add new ReduceAction1067(205)
-               reduce_table.add new ReduceAction1068(205)
-               reduce_table.add new ReduceAction37(206)
-               reduce_table.add new ReduceAction1070(206)
-               reduce_table.add new ReduceAction45(207)
-               reduce_table.add new ReduceAction1072(207)
-               reduce_table.add new ReduceAction412(208)
-               reduce_table.add new ReduceAction1074(208)
-               reduce_table.add new ReduceAction1075(209)
-               reduce_table.add new ReduceAction1076(209)
-               reduce_table.add new ReduceAction1077(210)
-               reduce_table.add new ReduceAction1078(210)
-               reduce_table.add new ReduceAction150(211)
-               reduce_table.add new ReduceAction1080(211)
-               reduce_table.add new ReduceAction391(212)
-               reduce_table.add new ReduceAction1082(212)
-               reduce_table.add new ReduceAction391(213)
-               reduce_table.add new ReduceAction1082(213)
-               reduce_table.add new ReduceAction391(214)
-               reduce_table.add new ReduceAction1082(214)
-               reduce_table.add new ReduceAction452(215)
-               reduce_table.add new ReduceAction1088(215)
-               reduce_table.add new ReduceAction412(216)
-               reduce_table.add new ReduceAction1074(216)
-               reduce_table.add new ReduceAction391(217)
-               reduce_table.add new ReduceAction1082(217)
-               reduce_table.add new ReduceAction391(218)
-               reduce_table.add new ReduceAction1082(218)
-               reduce_table.add new ReduceAction453(219)
-               reduce_table.add new ReduceAction1096(219)
-               reduce_table.add new ReduceAction1097(220)
-               reduce_table.add new ReduceAction1098(220)
-               reduce_table.add new ReduceAction475(221)
-               reduce_table.add new ReduceAction494(221)
+               reduce_table.add new ReduceAction202(198)
+               reduce_table.add new ReduceAction203(198)
+               reduce_table.add new ReduceAction204(198)
+               reduce_table.add new ReduceAction205(198)
+               reduce_table.add new ReduceAction206(198)
+               reduce_table.add new ReduceAction207(198)
+               reduce_table.add new ReduceAction206(198)
+               reduce_table.add new ReduceAction209(198)
+               reduce_table.add new ReduceAction210(198)
+               reduce_table.add new ReduceAction209(198)
+               reduce_table.add new ReduceAction212(198)
+               reduce_table.add new ReduceAction213(198)
+               reduce_table.add new ReduceAction212(198)
+               reduce_table.add new ReduceAction215(198)
+               reduce_table.add new ReduceAction162(199)
+               reduce_table.add new ReduceAction163(199)
+               reduce_table.add new ReduceAction164(199)
+               reduce_table.add new ReduceAction162(200)
+               reduce_table.add new ReduceAction163(200)
+               reduce_table.add new ReduceAction164(200)
+               reduce_table.add new ReduceAction165(201)
+               reduce_table.add new ReduceAction165(201)
+               reduce_table.add new ReduceAction175(201)
+               reduce_table.add new ReduceAction176(201)
+               reduce_table.add new ReduceAction177(201)
+               reduce_table.add new ReduceAction178(201)
+               reduce_table.add new ReduceAction179(201)
+               reduce_table.add new ReduceAction180(201)
+               reduce_table.add new ReduceAction181(201)
+               reduce_table.add new ReduceAction182(201)
+               reduce_table.add new ReduceAction165(201)
+               reduce_table.add new ReduceAction165(201)
+               reduce_table.add new ReduceAction165(201)
+               reduce_table.add new ReduceAction165(201)
+               reduce_table.add new ReduceAction165(201)
+               reduce_table.add new ReduceAction165(201)
+               reduce_table.add new ReduceAction215(201)
+               reduce_table.add new ReduceAction165(202)
+               reduce_table.add new ReduceAction165(202)
+               reduce_table.add new ReduceAction175(202)
+               reduce_table.add new ReduceAction176(202)
+               reduce_table.add new ReduceAction177(202)
+               reduce_table.add new ReduceAction178(202)
+               reduce_table.add new ReduceAction179(202)
+               reduce_table.add new ReduceAction180(202)
+               reduce_table.add new ReduceAction181(202)
+               reduce_table.add new ReduceAction182(202)
+               reduce_table.add new ReduceAction165(202)
+               reduce_table.add new ReduceAction165(202)
+               reduce_table.add new ReduceAction165(202)
+               reduce_table.add new ReduceAction165(202)
+               reduce_table.add new ReduceAction165(202)
+               reduce_table.add new ReduceAction165(202)
+               reduce_table.add new ReduceAction215(202)
+               reduce_table.add new ReduceAction165(203)
+               reduce_table.add new ReduceAction165(203)
+               reduce_table.add new ReduceAction175(203)
+               reduce_table.add new ReduceAction176(203)
+               reduce_table.add new ReduceAction177(203)
+               reduce_table.add new ReduceAction178(203)
+               reduce_table.add new ReduceAction179(203)
+               reduce_table.add new ReduceAction180(203)
+               reduce_table.add new ReduceAction181(203)
+               reduce_table.add new ReduceAction182(203)
+               reduce_table.add new ReduceAction165(203)
+               reduce_table.add new ReduceAction165(203)
+               reduce_table.add new ReduceAction165(203)
+               reduce_table.add new ReduceAction165(203)
+               reduce_table.add new ReduceAction165(203)
+               reduce_table.add new ReduceAction165(203)
+               reduce_table.add new ReduceAction215(203)
+               reduce_table.add new ReduceAction165(204)
+               reduce_table.add new ReduceAction165(204)
+               reduce_table.add new ReduceAction175(204)
+               reduce_table.add new ReduceAction176(204)
+               reduce_table.add new ReduceAction177(204)
+               reduce_table.add new ReduceAction178(204)
+               reduce_table.add new ReduceAction179(204)
+               reduce_table.add new ReduceAction180(204)
+               reduce_table.add new ReduceAction181(204)
+               reduce_table.add new ReduceAction182(204)
+               reduce_table.add new ReduceAction165(204)
+               reduce_table.add new ReduceAction165(204)
+               reduce_table.add new ReduceAction165(204)
+               reduce_table.add new ReduceAction165(204)
+               reduce_table.add new ReduceAction165(204)
+               reduce_table.add new ReduceAction165(204)
+               reduce_table.add new ReduceAction215(204)
+               reduce_table.add new ReduceAction507(205)
+               reduce_table.add new ReduceAction509(205)
+               reduce_table.add new ReduceAction547(206)
+               reduce_table.add new ReduceAction548(206)
+               reduce_table.add new ReduceAction23(206)
+               reduce_table.add new ReduceAction1265(207)
+               reduce_table.add new ReduceAction1266(207)
+               reduce_table.add new ReduceAction1267(208)
+               reduce_table.add new ReduceAction1268(208)
+               reduce_table.add new ReduceAction1269(209)
+               reduce_table.add new ReduceAction1270(209)
+               reduce_table.add new ReduceAction38(210)
+               reduce_table.add new ReduceAction1272(210)
+               reduce_table.add new ReduceAction46(211)
+               reduce_table.add new ReduceAction1274(211)
+               reduce_table.add new ReduceAction480(212)
+               reduce_table.add new ReduceAction1276(212)
+               reduce_table.add new ReduceAction1277(213)
+               reduce_table.add new ReduceAction1278(213)
+               reduce_table.add new ReduceAction1279(214)
+               reduce_table.add new ReduceAction1280(214)
+               reduce_table.add new ReduceAction156(215)
+               reduce_table.add new ReduceAction1282(215)
+               reduce_table.add new ReduceAction459(216)
+               reduce_table.add new ReduceAction1284(216)
+               reduce_table.add new ReduceAction459(217)
+               reduce_table.add new ReduceAction1284(217)
+               reduce_table.add new ReduceAction459(218)
+               reduce_table.add new ReduceAction1284(218)
+               reduce_table.add new ReduceAction521(219)
+               reduce_table.add new ReduceAction1290(219)
+               reduce_table.add new ReduceAction480(220)
+               reduce_table.add new ReduceAction1276(220)
+               reduce_table.add new ReduceAction459(221)
+               reduce_table.add new ReduceAction1284(221)
+               reduce_table.add new ReduceAction459(222)
+               reduce_table.add new ReduceAction1284(222)
+               reduce_table.add new ReduceAction522(223)
+               reduce_table.add new ReduceAction1298(223)
+               reduce_table.add new ReduceAction1299(224)
+               reduce_table.add new ReduceAction1300(224)
+               reduce_table.add new ReduceAction544(225)
+               reduce_table.add new ReduceAction563(225)
                return reduce_table
        end
 end
@@ -2116,6 +2318,21 @@ private class ReduceAction37
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
+                                       var tkwsubsetnode2 = nodearraylist1
+                                       assert tkwsubsetnode2 isa nullable TKwsubset
+                                       var pclasskindnode1: nullable ASubsetClasskind = new ASubsetClasskind.init_asubsetclasskind(
+                                               tkwsubsetnode2
+                                       )
+                                       node_list = pclasskindnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction38
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var pformaldefnode1 = nodearraylist1
                                        if pformaldefnode1 != null then
@@ -2125,7 +2342,7 @@ private class ReduceAction37
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction38
+private class ReduceAction39
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2144,7 +2361,7 @@ private class ReduceAction38
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction39
+private class ReduceAction40
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2154,7 +2371,7 @@ private class ReduceAction39
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction40
+private class ReduceAction41
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2167,7 +2384,7 @@ private class ReduceAction40
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction41
+private class ReduceAction42
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2188,7 +2405,7 @@ private class ReduceAction41
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction42
+private class ReduceAction43
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2212,7 +2429,7 @@ private class ReduceAction42
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction43
+private class ReduceAction44
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2248,7 +2465,7 @@ private class ReduceAction43
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction44
+private class ReduceAction45
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2263,7 +2480,7 @@ private class ReduceAction44
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction45
+private class ReduceAction46
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2278,7 +2495,7 @@ private class ReduceAction45
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction46
+private class ReduceAction47
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2289,7 +2506,7 @@ private class ReduceAction46
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction47
+private class ReduceAction48
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2301,7 +2518,7 @@ private class ReduceAction47
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction48
+private class ReduceAction49
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2323,16 +2540,16 @@ private class ReduceAction48
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwmethnode5 = nodearraylist4
                                        assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode8 = nodearraylist5
-                                       assert pmethidnode8 isa nullable AMethid
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var tkwdonode13 = nodearraylist7
-                                       assert tkwdonode13 isa nullable TKwdo
-                                       var pexprnode14 = nodearraylist8
-                                       assert pexprnode14 isa nullable AExpr
-                                       var tkwendnode15 = nodearraylist9
-                                       assert tkwendnode15 isa nullable TKwend
+                                       var pmethidnode9 = nodearraylist5
+                                       assert pmethidnode9 isa nullable AMethid
+                                       var psignaturenode10 = nodearraylist6
+                                       assert psignaturenode10 isa nullable ASignature
+                                       var tkwdonode14 = nodearraylist7
+                                       assert tkwdonode14 isa nullable TKwdo
+                                       var pexprnode15 = nodearraylist8
+                                       assert pexprnode15 isa nullable AExpr
+                                       var tkwendnode16 = nodearraylist9
+                                       assert tkwendnode16 isa nullable TKwend
                                        var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -2340,20 +2557,21 @@ private class ReduceAction48
                                                tkwmethnode5,
                                                null,
                                                null,
-                                               pmethidnode8,
-                                               psignaturenode9,
                                                null,
+                                               pmethidnode9,
+                                               psignaturenode10,
                                                null,
                                                null,
-                                               tkwdonode13,
-                                               pexprnode14,
-                                               tkwendnode15
+                                               null,
+                                               tkwdonode14,
+                                               pexprnode15,
+                                               tkwendnode16
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction49
+private class ReduceAction50
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2376,18 +2594,18 @@ private class ReduceAction49
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwmethnode5 = nodearraylist4
                                        assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode8 = nodearraylist5
-                                       assert pmethidnode8 isa nullable AMethid
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pannotationsnode10 = nodearraylist7
-                                       assert pannotationsnode10 isa nullable AAnnotations
-                                       var tkwdonode13 = nodearraylist8
-                                       assert tkwdonode13 isa nullable TKwdo
-                                       var pexprnode14 = nodearraylist9
-                                       assert pexprnode14 isa nullable AExpr
-                                       var tkwendnode15 = nodearraylist10
-                                       assert tkwendnode15 isa nullable TKwend
+                                       var pmethidnode9 = nodearraylist5
+                                       assert pmethidnode9 isa nullable AMethid
+                                       var psignaturenode10 = nodearraylist6
+                                       assert psignaturenode10 isa nullable ASignature
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode14 = nodearraylist8
+                                       assert tkwdonode14 isa nullable TKwdo
+                                       var pexprnode15 = nodearraylist9
+                                       assert pexprnode15 isa nullable AExpr
+                                       var tkwendnode16 = nodearraylist10
+                                       assert tkwendnode16 isa nullable TKwend
                                        var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -2395,20 +2613,21 @@ private class ReduceAction49
                                                tkwmethnode5,
                                                null,
                                                null,
-                                               pmethidnode8,
-                                               psignaturenode9,
-                                               pannotationsnode10,
                                                null,
+                                               pmethidnode9,
+                                               psignaturenode10,
+                                               pannotationsnode11,
                                                null,
-                                               tkwdonode13,
-                                               pexprnode14,
-                                               tkwendnode15
+                                               null,
+                                               tkwdonode14,
+                                               pexprnode15,
+                                               tkwendnode16
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction50
+private class ReduceAction51
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2428,12 +2647,12 @@ private class ReduceAction50
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwmethnode5 = nodearraylist4
                                        assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode8 = nodearraylist5
-                                       assert pmethidnode8 isa nullable AMethid
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pannotationsnode10 = nodearraylist7
-                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pmethidnode9 = nodearraylist5
+                                       assert pmethidnode9 isa nullable AMethid
+                                       var psignaturenode10 = nodearraylist6
+                                       assert psignaturenode10 isa nullable ASignature
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
                                        var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -2441,9 +2660,10 @@ private class ReduceAction50
                                                tkwmethnode5,
                                                null,
                                                null,
-                                               pmethidnode8,
-                                               psignaturenode9,
-                                               pannotationsnode10,
+                                               null,
+                                               pmethidnode9,
+                                               psignaturenode10,
+                                               pannotationsnode11,
                                                null,
                                                null,
                                                null,
@@ -2454,11 +2674,12 @@ private class ReduceAction50
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction51
+private class ReduceAction52
        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
@@ -2471,33 +2692,144 @@ private class ReduceAction51
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode7 = nodearraylist4
-                                       assert tkwnewnode7 isa nullable TKwnew
-                                       var psignaturenode9 = nodearraylist5
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pannotationsnode10 = nodearraylist6
-                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var tkwisanode7 = nodearraylist4
+                                       assert tkwisanode7 isa nullable TKwisa
+                                       var listnode12 = new Array[Object]
+                                       var psignaturenode10: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode12,
+                                               null,
+                                               null
+                                       )
+                                       var tkwdonode18 = nodearraylist5
+                                       assert tkwdonode18 isa nullable TKwdo
+                                       var pexprnode19 = nodearraylist6
+                                       assert pexprnode19 isa nullable AExpr
+                                       var tkwendnode20 = nodearraylist7
+                                       assert tkwendnode20 isa nullable TKwend
                                        var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                null,
                                                null,
-                                               tkwnewnode7,
+                                               tkwisanode7,
+                                               null,
+                                               null,
+                                               psignaturenode10,
                                                null,
-                                               psignaturenode9,
-                                               pannotationsnode10,
                                                null,
                                                null,
+                                               tkwdonode18,
+                                               pexprnode19,
+                                               tkwendnode20
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction53
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var 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 tkwisanode7 = nodearraylist4
+                                       assert tkwisanode7 isa nullable TKwisa
+                                       var listnode12 = new Array[Object]
+                                       var psignaturenode10: nullable ASignature = new ASignature.init_asignature(
                                                null,
+                                               listnode12,
                                                null,
                                                null
                                        )
+                                       var pannotationsnode15 = nodearraylist5
+                                       assert pannotationsnode15 isa nullable AAnnotations
+                                       var tkwdonode18 = nodearraylist6
+                                       assert tkwdonode18 isa nullable TKwdo
+                                       var pexprnode19 = nodearraylist7
+                                       assert pexprnode19 isa nullable AExpr
+                                       var tkwendnode20 = nodearraylist8
+                                       assert tkwendnode20 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               tkwisanode7,
+                                               null,
+                                               null,
+                                               psignaturenode10,
+                                               pannotationsnode15,
+                                               null,
+                                               null,
+                                               tkwdonode18,
+                                               pexprnode19,
+                                               tkwendnode20
+                                       )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction52
+private class ReduceAction54
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwnewnode8 = nodearraylist4
+                                       assert tkwnewnode8 isa nullable TKwnew
+                                       var psignaturenode10 = nodearraylist5
+                                       assert psignaturenode10 isa nullable ASignature
+                                       var pannotationsnode11 = nodearraylist6
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode8,
+                                               null,
+                                               psignaturenode10,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction55
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2515,24 +2847,25 @@ private class ReduceAction52
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode7 = nodearraylist4
-                                       assert tkwnewnode7 isa nullable TKwnew
-                                       var pmethidnode8 = nodearraylist5
-                                       assert pmethidnode8 isa nullable AMethid
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pannotationsnode10 = nodearraylist7
-                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var tkwnewnode8 = nodearraylist4
+                                       assert tkwnewnode8 isa nullable TKwnew
+                                       var pmethidnode9 = nodearraylist5
+                                       assert pmethidnode9 isa nullable AMethid
+                                       var psignaturenode10 = nodearraylist6
+                                       assert psignaturenode10 isa nullable ASignature
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
                                        var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                null,
                                                null,
-                                               tkwnewnode7,
-                                               pmethidnode8,
-                                               psignaturenode9,
-                                               pannotationsnode10,
+                                               null,
+                                               tkwnewnode8,
+                                               pmethidnode9,
+                                               psignaturenode10,
+                                               pannotationsnode11,
                                                null,
                                                null,
                                                null,
@@ -2543,7 +2876,7 @@ private class ReduceAction52
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction53
+private class ReduceAction56
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2562,37 +2895,38 @@ private class ReduceAction53
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode7 = nodearraylist4
-                                       assert tkwnewnode7 isa nullable TKwnew
-                                       var psignaturenode9 = nodearraylist5
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var tkwdonode13 = nodearraylist6
-                                       assert tkwdonode13 isa nullable TKwdo
-                                       var pexprnode14 = nodearraylist7
-                                       assert pexprnode14 isa nullable AExpr
-                                       var tkwendnode15 = nodearraylist8
-                                       assert tkwendnode15 isa nullable TKwend
+                                       var tkwnewnode8 = nodearraylist4
+                                       assert tkwnewnode8 isa nullable TKwnew
+                                       var psignaturenode10 = nodearraylist5
+                                       assert psignaturenode10 isa nullable ASignature
+                                       var tkwdonode14 = nodearraylist6
+                                       assert tkwdonode14 isa nullable TKwdo
+                                       var pexprnode15 = nodearraylist7
+                                       assert pexprnode15 isa nullable AExpr
+                                       var tkwendnode16 = nodearraylist8
+                                       assert tkwendnode16 isa nullable TKwend
                                        var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                null,
                                                null,
-                                               tkwnewnode7,
                                                null,
-                                               psignaturenode9,
+                                               tkwnewnode8,
+                                               null,
+                                               psignaturenode10,
                                                null,
                                                null,
                                                null,
-                                               tkwdonode13,
-                                               pexprnode14,
-                                               tkwendnode15
+                                               tkwdonode14,
+                                               pexprnode15,
+                                               tkwendnode16
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction54
+private class ReduceAction57
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2612,39 +2946,40 @@ private class ReduceAction54
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode7 = nodearraylist4
-                                       assert tkwnewnode7 isa nullable TKwnew
-                                       var pmethidnode8 = nodearraylist5
-                                       assert pmethidnode8 isa nullable AMethid
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var tkwdonode13 = nodearraylist7
-                                       assert tkwdonode13 isa nullable TKwdo
-                                       var pexprnode14 = nodearraylist8
-                                       assert pexprnode14 isa nullable AExpr
-                                       var tkwendnode15 = nodearraylist9
-                                       assert tkwendnode15 isa nullable TKwend
+                                       var tkwnewnode8 = nodearraylist4
+                                       assert tkwnewnode8 isa nullable TKwnew
+                                       var pmethidnode9 = nodearraylist5
+                                       assert pmethidnode9 isa nullable AMethid
+                                       var psignaturenode10 = nodearraylist6
+                                       assert psignaturenode10 isa nullable ASignature
+                                       var tkwdonode14 = nodearraylist7
+                                       assert tkwdonode14 isa nullable TKwdo
+                                       var pexprnode15 = nodearraylist8
+                                       assert pexprnode15 isa nullable AExpr
+                                       var tkwendnode16 = nodearraylist9
+                                       assert tkwendnode16 isa nullable TKwend
                                        var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                null,
                                                null,
-                                               tkwnewnode7,
-                                               pmethidnode8,
-                                               psignaturenode9,
                                                null,
+                                               tkwnewnode8,
+                                               pmethidnode9,
+                                               psignaturenode10,
                                                null,
                                                null,
-                                               tkwdonode13,
-                                               pexprnode14,
-                                               tkwendnode15
+                                               null,
+                                               tkwdonode14,
+                                               pexprnode15,
+                                               tkwendnode16
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction55
+private class ReduceAction58
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2664,39 +2999,40 @@ private class ReduceAction55
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode7 = nodearraylist4
-                                       assert tkwnewnode7 isa nullable TKwnew
-                                       var psignaturenode9 = nodearraylist5
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pannotationsnode10 = nodearraylist6
-                                       assert pannotationsnode10 isa nullable AAnnotations
-                                       var tkwdonode13 = nodearraylist7
-                                       assert tkwdonode13 isa nullable TKwdo
-                                       var pexprnode14 = nodearraylist8
-                                       assert pexprnode14 isa nullable AExpr
-                                       var tkwendnode15 = nodearraylist9
-                                       assert tkwendnode15 isa nullable TKwend
+                                       var tkwnewnode8 = nodearraylist4
+                                       assert tkwnewnode8 isa nullable TKwnew
+                                       var psignaturenode10 = nodearraylist5
+                                       assert psignaturenode10 isa nullable ASignature
+                                       var pannotationsnode11 = nodearraylist6
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode14 = nodearraylist7
+                                       assert tkwdonode14 isa nullable TKwdo
+                                       var pexprnode15 = nodearraylist8
+                                       assert pexprnode15 isa nullable AExpr
+                                       var tkwendnode16 = nodearraylist9
+                                       assert tkwendnode16 isa nullable TKwend
                                        var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                null,
                                                null,
-                                               tkwnewnode7,
                                                null,
-                                               psignaturenode9,
-                                               pannotationsnode10,
+                                               tkwnewnode8,
+                                               null,
+                                               psignaturenode10,
+                                               pannotationsnode11,
                                                null,
                                                null,
-                                               tkwdonode13,
-                                               pexprnode14,
-                                               tkwendnode15
+                                               tkwdonode14,
+                                               pexprnode15,
+                                               tkwendnode16
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction56
+private class ReduceAction59
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2717,41 +3053,42 @@ private class ReduceAction56
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode7 = nodearraylist4
-                                       assert tkwnewnode7 isa nullable TKwnew
-                                       var pmethidnode8 = nodearraylist5
-                                       assert pmethidnode8 isa nullable AMethid
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pannotationsnode10 = nodearraylist7
-                                       assert pannotationsnode10 isa nullable AAnnotations
-                                       var tkwdonode13 = nodearraylist8
-                                       assert tkwdonode13 isa nullable TKwdo
-                                       var pexprnode14 = nodearraylist9
-                                       assert pexprnode14 isa nullable AExpr
-                                       var tkwendnode15 = nodearraylist10
-                                       assert tkwendnode15 isa nullable TKwend
+                                       var tkwnewnode8 = nodearraylist4
+                                       assert tkwnewnode8 isa nullable TKwnew
+                                       var pmethidnode9 = nodearraylist5
+                                       assert pmethidnode9 isa nullable AMethid
+                                       var psignaturenode10 = nodearraylist6
+                                       assert psignaturenode10 isa nullable ASignature
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode14 = nodearraylist8
+                                       assert tkwdonode14 isa nullable TKwdo
+                                       var pexprnode15 = nodearraylist9
+                                       assert pexprnode15 isa nullable AExpr
+                                       var tkwendnode16 = nodearraylist10
+                                       assert tkwendnode16 isa nullable TKwend
                                        var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                null,
                                                null,
-                                               tkwnewnode7,
-                                               pmethidnode8,
-                                               psignaturenode9,
-                                               pannotationsnode10,
+                                               null,
+                                               tkwnewnode8,
+                                               pmethidnode9,
+                                               psignaturenode10,
+                                               pannotationsnode11,
                                                null,
                                                null,
-                                               tkwdonode13,
-                                               pexprnode14,
-                                               tkwendnode15
+                                               tkwdonode14,
+                                               pexprnode15,
+                                               tkwendnode16
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction57
+private class ReduceAction60
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2772,14 +3109,14 @@ private class ReduceAction57
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwmethnode5 = nodearraylist4
                                        assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode8 = nodearraylist5
-                                       assert pmethidnode8 isa nullable AMethid
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexterncallsnode11 = nodearraylist7
-                                       assert pexterncallsnode11 isa nullable AExternCalls
-                                       var pexterncodeblocknode12 = nodearraylist8
-                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var pmethidnode9 = nodearraylist5
+                                       assert pmethidnode9 isa nullable AMethid
+                                       var psignaturenode10 = nodearraylist6
+                                       assert psignaturenode10 isa nullable ASignature
+                                       var pexterncallsnode12 = nodearraylist7
+                                       assert pexterncallsnode12 isa nullable AExternCalls
+                                       var pexterncodeblocknode13 = nodearraylist8
+                                       assert pexterncodeblocknode13 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -2787,11 +3124,12 @@ private class ReduceAction57
                                                tkwmethnode5,
                                                null,
                                                null,
-                                               pmethidnode8,
-                                               psignaturenode9,
                                                null,
-                                               pexterncallsnode11,
-                                               pexterncodeblocknode12,
+                                               pmethidnode9,
+                                               psignaturenode10,
+                                               null,
+                                               pexterncallsnode12,
+                                               pexterncodeblocknode13,
                                                null,
                                                null,
                                                null
@@ -2800,7 +3138,7 @@ private class ReduceAction57
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction58
+private class ReduceAction61
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2822,16 +3160,16 @@ private class ReduceAction58
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwmethnode5 = nodearraylist4
                                        assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode8 = nodearraylist5
-                                       assert pmethidnode8 isa nullable AMethid
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pannotationsnode10 = nodearraylist7
-                                       assert pannotationsnode10 isa nullable AAnnotations
-                                       var pexterncallsnode11 = nodearraylist8
-                                       assert pexterncallsnode11 isa nullable AExternCalls
-                                       var pexterncodeblocknode12 = nodearraylist9
-                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var pmethidnode9 = nodearraylist5
+                                       assert pmethidnode9 isa nullable AMethid
+                                       var psignaturenode10 = nodearraylist6
+                                       assert psignaturenode10 isa nullable ASignature
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pexterncallsnode12 = nodearraylist8
+                                       assert pexterncallsnode12 isa nullable AExternCalls
+                                       var pexterncodeblocknode13 = nodearraylist9
+                                       assert pexterncodeblocknode13 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -2839,11 +3177,12 @@ private class ReduceAction58
                                                tkwmethnode5,
                                                null,
                                                null,
-                                               pmethidnode8,
-                                               psignaturenode9,
-                                               pannotationsnode10,
-                                               pexterncallsnode11,
-                                               pexterncodeblocknode12,
+                                               null,
+                                               pmethidnode9,
+                                               psignaturenode10,
+                                               pannotationsnode11,
+                                               pexterncallsnode12,
+                                               pexterncodeblocknode13,
                                                null,
                                                null,
                                                null
@@ -2852,7 +3191,7 @@ private class ReduceAction58
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction59
+private class ReduceAction62
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2896,7 +3235,7 @@ private class ReduceAction59
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction60
+private class ReduceAction63
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2947,7 +3286,7 @@ private class ReduceAction60
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction61
+private class ReduceAction64
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2994,7 +3333,7 @@ private class ReduceAction61
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction62
+private class ReduceAction65
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3044,7 +3383,7 @@ private class ReduceAction62
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction63
+private class ReduceAction66
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3094,7 +3433,7 @@ private class ReduceAction63
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction64
+private class ReduceAction67
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3147,7 +3486,7 @@ private class ReduceAction64
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction65
+private class ReduceAction68
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3168,14 +3507,14 @@ private class ReduceAction65
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwinitnode6 = nodearraylist4
                                        assert tkwinitnode6 isa nullable TKwinit
-                                       var psignaturenode9 = nodearraylist5
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var tkwdonode13 = nodearraylist6
-                                       assert tkwdonode13 isa nullable TKwdo
-                                       var pexprnode14 = nodearraylist7
-                                       assert pexprnode14 isa nullable AExpr
-                                       var tkwendnode15 = nodearraylist8
-                                       assert tkwendnode15 isa nullable TKwend
+                                       var psignaturenode10 = nodearraylist5
+                                       assert psignaturenode10 isa nullable ASignature
+                                       var tkwdonode14 = nodearraylist6
+                                       assert tkwdonode14 isa nullable TKwdo
+                                       var pexprnode15 = nodearraylist7
+                                       assert pexprnode15 isa nullable AExpr
+                                       var tkwendnode16 = nodearraylist8
+                                       assert tkwendnode16 isa nullable TKwend
                                        var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -3184,19 +3523,20 @@ private class ReduceAction65
                                                tkwinitnode6,
                                                null,
                                                null,
-                                               psignaturenode9,
                                                null,
+                                               psignaturenode10,
                                                null,
                                                null,
-                                               tkwdonode13,
-                                               pexprnode14,
-                                               tkwendnode15
+                                               null,
+                                               tkwdonode14,
+                                               pexprnode15,
+                                               tkwendnode16
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction66
+private class ReduceAction69
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3218,16 +3558,16 @@ private class ReduceAction66
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwinitnode6 = nodearraylist4
                                        assert tkwinitnode6 isa nullable TKwinit
-                                       var pmethidnode8 = nodearraylist5
-                                       assert pmethidnode8 isa nullable AMethid
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var tkwdonode13 = nodearraylist7
-                                       assert tkwdonode13 isa nullable TKwdo
-                                       var pexprnode14 = nodearraylist8
-                                       assert pexprnode14 isa nullable AExpr
-                                       var tkwendnode15 = nodearraylist9
-                                       assert tkwendnode15 isa nullable TKwend
+                                       var pmethidnode9 = nodearraylist5
+                                       assert pmethidnode9 isa nullable AMethid
+                                       var psignaturenode10 = nodearraylist6
+                                       assert psignaturenode10 isa nullable ASignature
+                                       var tkwdonode14 = nodearraylist7
+                                       assert tkwdonode14 isa nullable TKwdo
+                                       var pexprnode15 = nodearraylist8
+                                       assert pexprnode15 isa nullable AExpr
+                                       var tkwendnode16 = nodearraylist9
+                                       assert tkwendnode16 isa nullable TKwend
                                        var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -3235,20 +3575,21 @@ private class ReduceAction66
                                                null,
                                                tkwinitnode6,
                                                null,
-                                               pmethidnode8,
-                                               psignaturenode9,
+                                               null,
+                                               pmethidnode9,
+                                               psignaturenode10,
                                                null,
                                                null,
                                                null,
-                                               tkwdonode13,
-                                               pexprnode14,
-                                               tkwendnode15
+                                               tkwdonode14,
+                                               pexprnode15,
+                                               tkwendnode16
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction67
+private class ReduceAction70
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3270,16 +3611,16 @@ private class ReduceAction67
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwinitnode6 = nodearraylist4
                                        assert tkwinitnode6 isa nullable TKwinit
-                                       var psignaturenode9 = nodearraylist5
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pannotationsnode10 = nodearraylist6
-                                       assert pannotationsnode10 isa nullable AAnnotations
-                                       var tkwdonode13 = nodearraylist7
-                                       assert tkwdonode13 isa nullable TKwdo
-                                       var pexprnode14 = nodearraylist8
-                                       assert pexprnode14 isa nullable AExpr
-                                       var tkwendnode15 = nodearraylist9
-                                       assert tkwendnode15 isa nullable TKwend
+                                       var psignaturenode10 = nodearraylist5
+                                       assert psignaturenode10 isa nullable ASignature
+                                       var pannotationsnode11 = nodearraylist6
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode14 = nodearraylist7
+                                       assert tkwdonode14 isa nullable TKwdo
+                                       var pexprnode15 = nodearraylist8
+                                       assert pexprnode15 isa nullable AExpr
+                                       var tkwendnode16 = nodearraylist9
+                                       assert tkwendnode16 isa nullable TKwend
                                        var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -3288,19 +3629,20 @@ private class ReduceAction67
                                                tkwinitnode6,
                                                null,
                                                null,
-                                               psignaturenode9,
-                                               pannotationsnode10,
                                                null,
+                                               psignaturenode10,
+                                               pannotationsnode11,
                                                null,
-                                               tkwdonode13,
-                                               pexprnode14,
-                                               tkwendnode15
+                                               null,
+                                               tkwdonode14,
+                                               pexprnode15,
+                                               tkwendnode16
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction68
+private class ReduceAction71
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3323,18 +3665,18 @@ private class ReduceAction68
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwinitnode6 = nodearraylist4
                                        assert tkwinitnode6 isa nullable TKwinit
-                                       var pmethidnode8 = nodearraylist5
-                                       assert pmethidnode8 isa nullable AMethid
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pannotationsnode10 = nodearraylist7
-                                       assert pannotationsnode10 isa nullable AAnnotations
-                                       var tkwdonode13 = nodearraylist8
-                                       assert tkwdonode13 isa nullable TKwdo
-                                       var pexprnode14 = nodearraylist9
-                                       assert pexprnode14 isa nullable AExpr
-                                       var tkwendnode15 = nodearraylist10
-                                       assert tkwendnode15 isa nullable TKwend
+                                       var pmethidnode9 = nodearraylist5
+                                       assert pmethidnode9 isa nullable AMethid
+                                       var psignaturenode10 = nodearraylist6
+                                       assert psignaturenode10 isa nullable ASignature
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode14 = nodearraylist8
+                                       assert tkwdonode14 isa nullable TKwdo
+                                       var pexprnode15 = nodearraylist9
+                                       assert pexprnode15 isa nullable AExpr
+                                       var tkwendnode16 = nodearraylist10
+                                       assert tkwendnode16 isa nullable TKwend
                                        var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -3342,20 +3684,21 @@ private class ReduceAction68
                                                null,
                                                tkwinitnode6,
                                                null,
-                                               pmethidnode8,
-                                               psignaturenode9,
-                                               pannotationsnode10,
                                                null,
+                                               pmethidnode9,
+                                               psignaturenode10,
+                                               pannotationsnode11,
                                                null,
-                                               tkwdonode13,
-                                               pexprnode14,
-                                               tkwendnode15
+                                               null,
+                                               tkwdonode14,
+                                               pexprnode15,
+                                               tkwendnode16
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction69
+private class ReduceAction72
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3394,7 +3737,7 @@ private class ReduceAction69
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction70
+private class ReduceAction73
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3412,26 +3755,27 @@ private class ReduceAction70
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode7 = nodearraylist4
-                                       assert tkwnewnode7 isa nullable TKwnew
-                                       var psignaturenode9 = nodearraylist5
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexterncallsnode11 = nodearraylist6
-                                       assert pexterncallsnode11 isa nullable AExternCalls
-                                       var pexterncodeblocknode12 = nodearraylist7
-                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var tkwnewnode8 = nodearraylist4
+                                       assert tkwnewnode8 isa nullable TKwnew
+                                       var psignaturenode10 = nodearraylist5
+                                       assert psignaturenode10 isa nullable ASignature
+                                       var pexterncallsnode12 = nodearraylist6
+                                       assert pexterncallsnode12 isa nullable AExternCalls
+                                       var pexterncodeblocknode13 = nodearraylist7
+                                       assert pexterncodeblocknode13 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                null,
                                                null,
-                                               tkwnewnode7,
                                                null,
-                                               psignaturenode9,
+                                               tkwnewnode8,
+                                               null,
+                                               psignaturenode10,
                                                null,
-                                               pexterncallsnode11,
-                                               pexterncodeblocknode12,
+                                               pexterncallsnode12,
+                                               pexterncodeblocknode13,
                                                null,
                                                null,
                                                null
@@ -3440,7 +3784,7 @@ private class ReduceAction70
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction71
+private class ReduceAction74
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3459,28 +3803,29 @@ private class ReduceAction71
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode7 = nodearraylist4
-                                       assert tkwnewnode7 isa nullable TKwnew
-                                       var pmethidnode8 = nodearraylist5
-                                       assert pmethidnode8 isa nullable AMethid
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexterncallsnode11 = nodearraylist7
-                                       assert pexterncallsnode11 isa nullable AExternCalls
-                                       var pexterncodeblocknode12 = nodearraylist8
-                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var tkwnewnode8 = nodearraylist4
+                                       assert tkwnewnode8 isa nullable TKwnew
+                                       var pmethidnode9 = nodearraylist5
+                                       assert pmethidnode9 isa nullable AMethid
+                                       var psignaturenode10 = nodearraylist6
+                                       assert psignaturenode10 isa nullable ASignature
+                                       var pexterncallsnode12 = nodearraylist7
+                                       assert pexterncallsnode12 isa nullable AExternCalls
+                                       var pexterncodeblocknode13 = nodearraylist8
+                                       assert pexterncodeblocknode13 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                null,
                                                null,
-                                               tkwnewnode7,
-                                               pmethidnode8,
-                                               psignaturenode9,
                                                null,
-                                               pexterncallsnode11,
-                                               pexterncodeblocknode12,
+                                               tkwnewnode8,
+                                               pmethidnode9,
+                                               psignaturenode10,
+                                               null,
+                                               pexterncallsnode12,
+                                               pexterncodeblocknode13,
                                                null,
                                                null,
                                                null
@@ -3489,7 +3834,7 @@ private class ReduceAction71
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction72
+private class ReduceAction75
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3508,28 +3853,29 @@ private class ReduceAction72
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode7 = nodearraylist4
-                                       assert tkwnewnode7 isa nullable TKwnew
-                                       var psignaturenode9 = nodearraylist5
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pannotationsnode10 = nodearraylist6
-                                       assert pannotationsnode10 isa nullable AAnnotations
-                                       var pexterncallsnode11 = nodearraylist7
-                                       assert pexterncallsnode11 isa nullable AExternCalls
-                                       var pexterncodeblocknode12 = nodearraylist8
-                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var tkwnewnode8 = nodearraylist4
+                                       assert tkwnewnode8 isa nullable TKwnew
+                                       var psignaturenode10 = nodearraylist5
+                                       assert psignaturenode10 isa nullable ASignature
+                                       var pannotationsnode11 = nodearraylist6
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pexterncallsnode12 = nodearraylist7
+                                       assert pexterncallsnode12 isa nullable AExternCalls
+                                       var pexterncodeblocknode13 = nodearraylist8
+                                       assert pexterncodeblocknode13 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                null,
                                                null,
-                                               tkwnewnode7,
                                                null,
-                                               psignaturenode9,
-                                               pannotationsnode10,
-                                               pexterncallsnode11,
-                                               pexterncodeblocknode12,
+                                               tkwnewnode8,
+                                               null,
+                                               psignaturenode10,
+                                               pannotationsnode11,
+                                               pexterncallsnode12,
+                                               pexterncodeblocknode13,
                                                null,
                                                null,
                                                null
@@ -3538,7 +3884,7 @@ private class ReduceAction72
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction73
+private class ReduceAction76
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3558,30 +3904,31 @@ private class ReduceAction73
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode7 = nodearraylist4
-                                       assert tkwnewnode7 isa nullable TKwnew
-                                       var pmethidnode8 = nodearraylist5
-                                       assert pmethidnode8 isa nullable AMethid
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pannotationsnode10 = nodearraylist7
-                                       assert pannotationsnode10 isa nullable AAnnotations
-                                       var pexterncallsnode11 = nodearraylist8
-                                       assert pexterncallsnode11 isa nullable AExternCalls
-                                       var pexterncodeblocknode12 = nodearraylist9
-                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var tkwnewnode8 = nodearraylist4
+                                       assert tkwnewnode8 isa nullable TKwnew
+                                       var pmethidnode9 = nodearraylist5
+                                       assert pmethidnode9 isa nullable AMethid
+                                       var psignaturenode10 = nodearraylist6
+                                       assert psignaturenode10 isa nullable ASignature
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pexterncallsnode12 = nodearraylist8
+                                       assert pexterncallsnode12 isa nullable AExternCalls
+                                       var pexterncodeblocknode13 = nodearraylist9
+                                       assert pexterncodeblocknode13 isa nullable AExternCodeBlock
                                        var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                null,
                                                null,
-                                               tkwnewnode7,
-                                               pmethidnode8,
-                                               psignaturenode9,
-                                               pannotationsnode10,
-                                               pexterncallsnode11,
-                                               pexterncodeblocknode12,
+                                               null,
+                                               tkwnewnode8,
+                                               pmethidnode9,
+                                               psignaturenode10,
+                                               pannotationsnode11,
+                                               pexterncallsnode12,
+                                               pexterncodeblocknode13,
                                                null,
                                                null,
                                                null
@@ -3590,7 +3937,7 @@ private class ReduceAction73
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction74
+private class ReduceAction77
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3601,7 +3948,7 @@ private class ReduceAction74
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction76
+private class ReduceAction79
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3626,7 +3973,7 @@ private class ReduceAction76
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction77
+private class ReduceAction80
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3655,7 +4002,7 @@ private class ReduceAction77
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction80
+private class ReduceAction83
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3681,7 +4028,7 @@ private class ReduceAction80
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction81
+private class ReduceAction84
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3693,7 +4040,7 @@ private class ReduceAction81
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction82
+private class ReduceAction85
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3709,7 +4056,7 @@ private class ReduceAction82
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction83
+private class ReduceAction86
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3725,7 +4072,7 @@ 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
@@ -3741,7 +4088,7 @@ private class ReduceAction84
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction85
+private class ReduceAction88
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3757,7 +4104,7 @@ private class ReduceAction85
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction86
+private class ReduceAction89
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3772,7 +4119,7 @@ private class ReduceAction86
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction87
+private class ReduceAction90
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3787,7 +4134,7 @@ private class ReduceAction87
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction88
+private class ReduceAction91
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3802,7 +4149,7 @@ private class ReduceAction88
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction89
+private class ReduceAction92
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3817,7 +4164,7 @@ private class ReduceAction89
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction90
+private class ReduceAction93
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3832,7 +4179,7 @@ private class ReduceAction90
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction91
+private class ReduceAction94
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3847,7 +4194,7 @@ private class ReduceAction91
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction92
+private class ReduceAction95
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3862,7 +4209,7 @@ private class ReduceAction92
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction93
+private class ReduceAction96
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3877,7 +4224,7 @@ private class ReduceAction93
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction94
+private class ReduceAction97
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3892,7 +4239,7 @@ private class ReduceAction94
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction95
+private class ReduceAction98
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3907,7 +4254,7 @@ private class ReduceAction95
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction96
+private class ReduceAction99
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3922,7 +4269,7 @@ private class ReduceAction96
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction97
+private class ReduceAction100
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3937,7 +4284,7 @@ private class ReduceAction97
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction98
+private class ReduceAction101
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3952,7 +4299,7 @@ private class ReduceAction98
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction99
+private class ReduceAction102
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3967,7 +4314,7 @@ private class ReduceAction99
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction100
+private class ReduceAction103
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3982,7 +4329,7 @@ private class ReduceAction100
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction101
+private class ReduceAction104
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3997,7 +4344,7 @@ private class ReduceAction101
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction102
+private class ReduceAction105
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4012,7 +4359,7 @@ private class ReduceAction102
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction103
+private class ReduceAction106
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4027,7 +4374,7 @@ private class ReduceAction103
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction104
+private class ReduceAction107
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4046,7 +4393,7 @@ private class ReduceAction104
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction105
+private class ReduceAction108
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4061,7 +4408,7 @@ private class ReduceAction105
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction106
+private class ReduceAction109
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4080,7 +4427,7 @@ private class ReduceAction106
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction107
+private class ReduceAction110
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4103,7 +4450,7 @@ private class ReduceAction107
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction108
+private class ReduceAction111
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4118,7 +4465,7 @@ private class ReduceAction108
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction109
+private class ReduceAction112
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4149,7 +4496,7 @@ private class ReduceAction109
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction110
+private class ReduceAction113
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4177,7 +4524,7 @@ private class ReduceAction110
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction111
+private class ReduceAction114
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4197,7 +4544,7 @@ private class ReduceAction111
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction112
+private class ReduceAction115
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4214,7 +4561,7 @@ private class ReduceAction112
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction113
+private class ReduceAction116
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4230,7 +4577,7 @@ private class ReduceAction113
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction114
+private class ReduceAction117
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4250,7 +4597,7 @@ private class ReduceAction114
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction116
+private class ReduceAction119
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4263,7 +4610,7 @@ private class ReduceAction116
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction117
+private class ReduceAction120
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4284,7 +4631,7 @@ private class ReduceAction117
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction118
+private class ReduceAction121
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4305,7 +4652,7 @@ private class ReduceAction118
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction119
+private class ReduceAction122
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4329,7 +4676,7 @@ private class ReduceAction119
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction120
+private class ReduceAction123
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4353,7 +4700,7 @@ private class ReduceAction120
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction121
+private class ReduceAction124
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4380,7 +4727,7 @@ private class ReduceAction121
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction122
+private class ReduceAction125
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4404,7 +4751,7 @@ private class ReduceAction122
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction123
+private class ReduceAction126
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4432,7 +4779,7 @@ private class ReduceAction123
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction125
+private class ReduceAction128
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4445,7 +4792,7 @@ private class ReduceAction125
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction126
+private class ReduceAction129
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4456,7 +4803,7 @@ private class ReduceAction126
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction128
+private class ReduceAction131
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4471,7 +4818,7 @@ private class ReduceAction128
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction129
+private class ReduceAction132
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4486,7 +4833,7 @@ private class ReduceAction129
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction130
+private class ReduceAction133
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4509,7 +4856,7 @@ private class ReduceAction130
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction131
+private class ReduceAction134
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4524,7 +4871,7 @@ private class ReduceAction131
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction132
+private class ReduceAction135
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4556,7 +4903,7 @@ private class ReduceAction132
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction133
+private class ReduceAction136
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4584,7 +4931,7 @@ private class ReduceAction133
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction134
+private class ReduceAction137
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4613,7 +4960,7 @@ private class ReduceAction134
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction135
+private class ReduceAction138
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4638,7 +4985,7 @@ private class ReduceAction135
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction136
+private class ReduceAction139
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4672,7 +5019,7 @@ private class ReduceAction136
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction137
+private class ReduceAction140
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4702,7 +5049,7 @@ private class ReduceAction137
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction139
+private class ReduceAction142
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4713,7 +5060,7 @@ private class ReduceAction139
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction140
+private class ReduceAction143
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4734,7 +5081,7 @@ private class ReduceAction140
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction141
+private class ReduceAction144
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4750,7 +5097,7 @@ private class ReduceAction141
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction142
+private class ReduceAction145
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4769,7 +5116,7 @@ private class ReduceAction142
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction143
+private class ReduceAction146
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4780,7 +5127,7 @@ private class ReduceAction143
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction145
+private class ReduceAction148
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4792,7 +5139,31 @@ private class ReduceAction145
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction146
+private class ReduceAction149
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var ptypenode1 = nodearraylist1
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction150
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var ptypenode1 = nodearraylist1
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction152
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4816,7 +5187,7 @@ private class ReduceAction146
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction147
+private class ReduceAction153
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4843,7 +5214,7 @@ private class ReduceAction147
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction148
+private class ReduceAction154
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4879,7 +5250,7 @@ private class ReduceAction148
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction149
+private class ReduceAction155
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4918,7 +5289,7 @@ private class ReduceAction149
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction150
+private class ReduceAction156
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4933,7 +5304,7 @@ private class ReduceAction150
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction151
+private class ReduceAction157
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4952,7 +5323,7 @@ private class ReduceAction151
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction152
+private class ReduceAction158
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4965,7 +5336,7 @@ private class ReduceAction152
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction156
+private class ReduceAction162
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4977,7 +5348,7 @@ private class ReduceAction156
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction157
+private class ReduceAction163
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4995,7 +5366,7 @@ private class ReduceAction157
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction158
+private class ReduceAction164
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5012,7 +5383,7 @@ private class ReduceAction158
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction159
+private class ReduceAction165
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5023,7 +5394,7 @@ private class ReduceAction159
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction160
+private class ReduceAction166
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5043,7 +5414,7 @@ private class ReduceAction160
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction161
+private class ReduceAction167
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5067,7 +5438,7 @@ private class ReduceAction161
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction162
+private class ReduceAction168
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5088,7 +5459,7 @@ private class ReduceAction162
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction163
+private class ReduceAction169
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5113,7 +5484,7 @@ private class ReduceAction163
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction164
+private class ReduceAction170
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5137,7 +5508,7 @@ private class ReduceAction164
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction165
+private class ReduceAction171
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5165,7 +5536,7 @@ private class ReduceAction165
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction169
+private class ReduceAction175
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5181,7 +5552,7 @@ private class ReduceAction169
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction170
+private class ReduceAction176
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5200,7 +5571,7 @@ private class ReduceAction170
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction171
+private class ReduceAction177
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5219,7 +5590,7 @@ private class ReduceAction171
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction172
+private class ReduceAction178
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5235,7 +5606,7 @@ private class ReduceAction172
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction173
+private class ReduceAction179
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5254,7 +5625,7 @@ private class ReduceAction173
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction174
+private class ReduceAction180
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5269,7 +5640,7 @@ private class ReduceAction174
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction175
+private class ReduceAction181
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5285,7 +5656,7 @@ private class ReduceAction175
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction176
+private class ReduceAction182
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5304,7 +5675,7 @@ private class ReduceAction176
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction184
+private class ReduceAction190
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5333,7 +5704,7 @@ private class ReduceAction184
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction185
+private class ReduceAction191
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5370,7 +5741,7 @@ private class ReduceAction185
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction186
+private class ReduceAction192
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5411,7 +5782,7 @@ private class ReduceAction186
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction187
+private class ReduceAction193
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5449,122 +5820,295 @@ private class ReduceAction187
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction188
+private class ReduceAction194
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tidnode5 = nodearraylist1
-                                       assert tidnode5 isa nullable TId
-                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
                                                null,
-                                               tidnode5
+                                               tidnode7
                                        )
-                                       var pexprsnode6 = nodearraylist2
-                                       assert pexprsnode6 isa nullable AExprs
+                                       var pexprsnode8 = nodearraylist6
+                                       assert pexprsnode8 isa nullable AExprs
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               pqidnode3,
-                                               pexprsnode6
+                                               pqidnode5,
+                                               pexprsnode8
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction189
+private class ReduceAction195
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var listnode5 = new Array[Object]
-                                       var tclassidnode6 = nodearraylist1
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode5,
-                                               tclassidnode6
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
                                        )
-                                       var tidnode7 = nodearraylist2
-                                       assert tidnode7 isa nullable TId
-                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
-                                               pqualifiednode4,
-                                               tidnode7
+                                       var listnode7 = new Array[Object]
+                                       var tclassidnode8 = nodearraylist5
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
                                        )
-                                       var pexprsnode8 = nodearraylist3
-                                       assert pexprsnode8 isa nullable AExprs
+                                       var tidnode9 = nodearraylist6
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist7
+                                       assert pexprsnode10 isa nullable AExprs
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               pqidnode3,
-                                               pexprsnode8
+                                               pqidnode5,
+                                               pexprsnode10
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction190
+private class ReduceAction196
        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 listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist1
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var tclassidnode7 = nodearraylist2
-                                       assert tclassidnode7 isa nullable TClassid
-                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode6,
-                                               tclassidnode7
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
                                        )
-                                       var tidnode8 = nodearraylist3
-                                       assert tidnode8 isa nullable TId
-                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
-                                               pqualifiednode4,
-                                               tidnode8
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tclassidnode9 = nodearraylist6
+                                       assert tclassidnode9 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               tclassidnode9
                                        )
-                                       var pexprsnode9 = nodearraylist4
-                                       assert pexprsnode9 isa nullable AExprs
+                                       var tidnode10 = nodearraylist7
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var pexprsnode11 = nodearraylist8
+                                       assert pexprsnode11 isa nullable AExprs
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               pqidnode3,
-                                               pexprsnode9
+                                               pqidnode5,
+                                               pexprsnode11
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction191
+private class ReduceAction197
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist1
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode6,
-                                               null
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
                                        )
-                                       var tidnode8 = nodearraylist2
-                                       assert tidnode8 isa nullable TId
-                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
-                                               pqualifiednode4,
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               null
+                                       )
+                                       var tidnode10 = nodearraylist6
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var pexprsnode11 = nodearraylist7
+                                       assert pexprsnode11 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction198
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode5 = nodearraylist1
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var pexprsnode6 = nodearraylist2
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction199
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist1
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist2
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist3
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction200
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist4
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction201
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist2
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
                                                tidnode8
                                        )
                                        var pexprsnode9 = nodearraylist3
@@ -5578,7 +6122,7 @@ private class ReduceAction191
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction192
+private class ReduceAction202
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5601,7 +6145,7 @@ private class ReduceAction192
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction193
+private class ReduceAction203
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5626,7 +6170,39 @@ private class ReduceAction193
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction194
+private class ReduceAction204
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tkwinitnode5 = nodearraylist5
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var pexprsnode6 = nodearraylist6
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode5,
+                                               pexprsnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction205
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5647,7 +6223,7 @@ private class ReduceAction194
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction195
+private class ReduceAction206
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5673,7 +6249,7 @@ private class ReduceAction195
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction196
+private class ReduceAction207
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5700,7 +6276,74 @@ private class ReduceAction196
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction198
+private class ReduceAction209
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tkwinitnode5 = nodearraylist6
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var pexprsnode6 = nodearraylist7
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode5,
+                                               pexprsnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction210
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tkwinitnode5 = nodearraylist7
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var pexprsnode6 = nodearraylist8
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode5,
+                                               pexprsnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction212
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5722,7 +6365,7 @@ private class ReduceAction198
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction199
+private class ReduceAction213
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5745,7 +6388,7 @@ private class ReduceAction199
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction201
+private class ReduceAction215
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5773,7 +6416,7 @@ private class ReduceAction201
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction202
+private class ReduceAction216
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5789,7 +6432,7 @@ private class ReduceAction202
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction203
+private class ReduceAction217
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5808,7 +6451,7 @@ private class ReduceAction203
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction204
+private class ReduceAction218
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5834,7 +6477,7 @@ private class ReduceAction204
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction205
+private class ReduceAction219
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5863,7 +6506,7 @@ private class ReduceAction205
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction206
+private class ReduceAction220
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5896,7 +6539,7 @@ private class ReduceAction206
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction207
+private class ReduceAction221
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5932,7 +6575,7 @@ private class ReduceAction207
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction208
+private class ReduceAction222
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5962,38 +6605,75 @@ private class ReduceAction208
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction209
+private class ReduceAction223
        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 tattridnode3 = nodearraylist2
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist3
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist4
-                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tattridnode5 = nodearraylist6
+                                       assert tattridnode5 isa nullable TAttrid
+                                       var tassignnode6 = nodearraylist7
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist8
+                                       assert pexprnode7 isa nullable AExpr
                                        var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
                                                pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                               tattridnode5,
+                                               tassignnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction210
+private class ReduceAction224
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tattridnode3 = 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 ReduceAction225
+       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
@@ -6025,7 +6705,7 @@ private class ReduceAction210
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction211
+private class ReduceAction226
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6063,7 +6743,7 @@ private class ReduceAction211
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction212
+private class ReduceAction227
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6108,7 +6788,7 @@ private class ReduceAction212
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction213
+private class ReduceAction228
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6154,7 +6834,7 @@ private class ReduceAction213
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction214
+private class ReduceAction229
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6203,7 +6883,7 @@ private class ReduceAction214
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction215
+private class ReduceAction230
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6253,7 +6933,7 @@ private class ReduceAction215
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction216
+private class ReduceAction231
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6299,7 +6979,7 @@ private class ReduceAction216
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction217
+private class ReduceAction232
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6346,106 +7026,42 @@ private class ReduceAction217
                                        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 nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tidnode5 = nodearraylist1
-                                       assert tidnode5 isa nullable TId
-                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
-                                               null,
-                                               tidnode5
-                                       )
-                                       var pexprsnode6 = nodearraylist2
-                                       assert pexprsnode6 isa nullable AExprs
-                                       var tassignnode7 = nodearraylist3
-                                       assert tassignnode7 isa nullable TAssign
-                                       var pexprnode8 = nodearraylist4
-                                       assert pexprnode8 isa nullable AExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
-                                               pexprnode2,
-                                               pqidnode3,
-                                               pexprsnode6,
-                                               tassignnode7,
-                                               pexprnode8
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction219
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tidnode5 = nodearraylist1
-                                       assert tidnode5 isa nullable TId
-                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
-                                               null,
-                                               tidnode5
-                                       )
-                                       var listnode7 = new Array[Object]
-                                       var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
-                                               listnode7
-                                       )
-                                       var tassignnode8 = nodearraylist2
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pexprnode9 = nodearraylist3
-                                       assert pexprnode9 isa nullable AExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
-                                               pexprnode2,
-                                               pqidnode3,
-                                               pexprsnode6,
-                                               tassignnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction220
+private class ReduceAction233
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var listnode5 = new Array[Object]
-                                       var tclassidnode6 = nodearraylist1
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode5,
-                                               tclassidnode6
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
                                        )
-                                       var tidnode7 = nodearraylist2
+                                       var tidnode7 = nodearraylist5
                                        assert tidnode7 isa nullable TId
-                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
-                                               pqualifiednode4,
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               null,
                                                tidnode7
                                        )
-                                       var pexprsnode8 = nodearraylist3
+                                       var pexprsnode8 = nodearraylist6
                                        assert pexprsnode8 isa nullable AExprs
-                                       var tassignnode9 = nodearraylist4
+                                       var tassignnode9 = nodearraylist7
                                        assert tassignnode9 isa nullable TAssign
-                                       var pexprnode10 = nodearraylist5
+                                       var pexprnode10 = nodearraylist8
                                        assert pexprnode10 isa nullable AExpr
                                        var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
-                                               pqidnode3,
+                                               pqidnode5,
                                                pexprsnode8,
                                                tassignnode9,
                                                pexprnode10
@@ -6454,40 +7070,43 @@ private class ReduceAction220
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction221
+private class ReduceAction234
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var listnode5 = new Array[Object]
-                                       var tclassidnode6 = nodearraylist1
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode5,
-                                               tclassidnode6
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
                                        )
-                                       var tidnode7 = nodearraylist2
+                                       var tidnode7 = nodearraylist5
                                        assert tidnode7 isa nullable TId
-                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
-                                               pqualifiednode4,
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               null,
                                                tidnode7
                                        )
                                        var listnode9 = new Array[Object]
                                        var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
                                                listnode9
                                        )
-                                       var tassignnode10 = nodearraylist3
+                                       var tassignnode10 = nodearraylist6
                                        assert tassignnode10 isa nullable TAssign
-                                       var pexprnode11 = nodearraylist4
+                                       var pexprnode11 = nodearraylist7
                                        assert pexprnode11 isa nullable AExpr
                                        var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
-                                               pqidnode3,
+                                               pqidnode5,
                                                pexprsnode8,
                                                tassignnode10,
                                                pexprnode11
@@ -6496,214 +7115,283 @@ private class ReduceAction221
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction222
+private class ReduceAction235
        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 listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist1
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var tclassidnode7 = nodearraylist2
-                                       assert tclassidnode7 isa nullable TClassid
-                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode6,
-                                               tclassidnode7
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
                                        )
-                                       var tidnode8 = nodearraylist3
-                                       assert tidnode8 isa nullable TId
-                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
-                                               pqualifiednode4,
-                                               tidnode8
+                                       var listnode7 = new Array[Object]
+                                       var tclassidnode8 = nodearraylist5
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
                                        )
-                                       var pexprsnode9 = nodearraylist4
-                                       assert pexprsnode9 isa nullable AExprs
-                                       var tassignnode10 = nodearraylist5
-                                       assert tassignnode10 isa nullable TAssign
-                                       var pexprnode11 = nodearraylist6
-                                       assert pexprnode11 isa nullable AExpr
+                                       var tidnode9 = nodearraylist6
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist7
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var tassignnode11 = nodearraylist8
+                                       assert tassignnode11 isa nullable TAssign
+                                       var pexprnode12 = nodearraylist9
+                                       assert pexprnode12 isa nullable AExpr
                                        var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
-                                               pqidnode3,
-                                               pexprsnode9,
-                                               tassignnode10,
-                                               pexprnode11
+                                               pqidnode5,
+                                               pexprsnode10,
+                                               tassignnode11,
+                                               pexprnode12
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction223
+private class ReduceAction236
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist1
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var tclassidnode7 = nodearraylist2
-                                       assert tclassidnode7 isa nullable TClassid
-                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode6,
-                                               tclassidnode7
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
                                        )
-                                       var tidnode8 = nodearraylist3
-                                       assert tidnode8 isa nullable TId
-                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
-                                               pqualifiednode4,
-                                               tidnode8
+                                       var listnode7 = new Array[Object]
+                                       var tclassidnode8 = nodearraylist5
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
                                        )
-                                       var listnode10 = new Array[Object]
-                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
-                                               listnode10
+                                       var tidnode9 = nodearraylist6
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode9
                                        )
-                                       var tassignnode11 = nodearraylist4
-                                       assert tassignnode11 isa nullable TAssign
-                                       var pexprnode12 = nodearraylist5
-                                       assert pexprnode12 isa nullable AExpr
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var tassignnode12 = nodearraylist7
+                                       assert tassignnode12 isa nullable TAssign
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
                                        var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
-                                               pqidnode3,
-                                               pexprsnode9,
-                                               tassignnode11,
-                                               pexprnode12
+                                               pqidnode5,
+                                               pexprsnode10,
+                                               tassignnode12,
+                                               pexprnode13
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction224
+private class ReduceAction237
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist1
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode6,
-                                               null
-                                       )
-                                       var tidnode8 = nodearraylist2
-                                       assert tidnode8 isa nullable TId
-                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
-                                               pqualifiednode4,
-                                               tidnode8
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
                                        )
-                                       var pexprsnode9 = nodearraylist3
-                                       assert pexprsnode9 isa nullable AExprs
-                                       var tassignnode10 = nodearraylist4
-                                       assert tassignnode10 isa nullable TAssign
-                                       var pexprnode11 = nodearraylist5
-                                       assert pexprnode11 isa nullable AExpr
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tclassidnode9 = nodearraylist6
+                                       assert tclassidnode9 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               tclassidnode9
+                                       )
+                                       var tidnode10 = nodearraylist7
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var pexprsnode11 = nodearraylist8
+                                       assert pexprsnode11 isa nullable AExprs
+                                       var tassignnode12 = nodearraylist9
+                                       assert tassignnode12 isa nullable TAssign
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa nullable AExpr
                                        var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
-                                               pqidnode3,
-                                               pexprsnode9,
-                                               tassignnode10,
-                                               pexprnode11
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               tassignnode12,
+                                               pexprnode13
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction225
+private class ReduceAction238
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist1
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode6,
-                                               null
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
                                        )
-                                       var tidnode8 = nodearraylist2
-                                       assert tidnode8 isa nullable TId
-                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
-                                               pqualifiednode4,
-                                               tidnode8
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tclassidnode9 = nodearraylist6
+                                       assert tclassidnode9 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               tclassidnode9
                                        )
-                                       var listnode10 = new Array[Object]
-                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
-                                               listnode10
+                                       var tidnode10 = nodearraylist7
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
                                        )
-                                       var tassignnode11 = nodearraylist3
-                                       assert tassignnode11 isa nullable TAssign
-                                       var pexprnode12 = nodearraylist4
-                                       assert pexprnode12 isa nullable AExpr
+                                       var listnode12 = new Array[Object]
+                                       var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode12
+                                       )
+                                       var tassignnode13 = nodearraylist8
+                                       assert tassignnode13 isa nullable TAssign
+                                       var pexprnode14 = nodearraylist9
+                                       assert pexprnode14 isa nullable AExpr
                                        var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
-                                               pqidnode3,
-                                               pexprsnode9,
-                                               tassignnode11,
-                                               pexprnode12
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               tassignnode13,
+                                               pexprnode14
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction226
+private class ReduceAction239
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var 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(
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               null
+                                       )
+                                       var tidnode10 = nodearraylist6
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var pexprsnode11 = nodearraylist7
+                                       assert pexprsnode11 isa nullable AExprs
+                                       var tassignnode12 = nodearraylist8
+                                       assert tassignnode12 isa nullable TAssign
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
-                                               pexprsnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               tassignnode12,
+                                               pexprnode13
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction227
+private class ReduceAction240
        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
@@ -6711,101 +7399,90 @@ private class ReduceAction227
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist5
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist6
-                                       assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
                                        )
-                                       node_list = pexprnode1
-                                       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 nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode3 = nodearraylist2
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist3
-                                       assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist4
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               null
+                                       )
+                                       var tidnode10 = nodearraylist6
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var listnode12 = new Array[Object]
+                                       var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode12
+                                       )
+                                       var tassignnode13 = nodearraylist7
+                                       assert tassignnode13 isa nullable TAssign
+                                       var pexprnode14 = nodearraylist8
+                                       assert pexprnode14 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               tassignnode13,
+                                               pexprnode14
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction229
+private class ReduceAction241
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode5 = nodearraylist4
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode5 = nodearraylist1
                                        assert tidnode5 isa nullable TId
                                        var pqidnode3: nullable AQid = new AQid.init_aqid(
                                                null,
                                                tidnode5
                                        )
-                                       var pexprsnode6 = nodearraylist5
+                                       var pexprsnode6 = nodearraylist2
                                        assert pexprsnode6 isa nullable AExprs
-                                       var passignopnode7 = nodearraylist6
-                                       assert passignopnode7 isa nullable AAssignOp
-                                       var pexprnode8 = nodearraylist7
+                                       var tassignnode7 = nodearraylist3
+                                       assert tassignnode7 isa nullable TAssign
+                                       var pexprnode8 = nodearraylist4
                                        assert pexprnode8 isa nullable AExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
                                                pqidnode3,
                                                pexprsnode6,
-                                               passignopnode7,
+                                               tassignnode7,
                                                pexprnode8
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction230
+private class ReduceAction242
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode5 = nodearraylist4
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode5 = nodearraylist1
                                        assert tidnode5 isa nullable TId
                                        var pqidnode3: nullable AQid = new AQid.init_aqid(
                                                null,
@@ -6815,88 +7492,80 @@ private class ReduceAction230
                                        var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
                                                listnode7
                                        )
-                                       var passignopnode8 = nodearraylist5
-                                       assert passignopnode8 isa nullable AAssignOp
-                                       var pexprnode9 = nodearraylist6
+                                       var tassignnode8 = nodearraylist2
+                                       assert tassignnode8 isa nullable TAssign
+                                       var pexprnode9 = nodearraylist3
                                        assert pexprnode9 isa nullable AExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
                                                pqidnode3,
                                                pexprsnode6,
-                                               passignopnode8,
+                                               tassignnode8,
                                                pexprnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction231
+private class ReduceAction243
        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 pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
                                        var listnode5 = new Array[Object]
-                                       var tclassidnode6 = nodearraylist4
+                                       var tclassidnode6 = nodearraylist1
                                        assert tclassidnode6 isa nullable TClassid
                                        var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
                                                listnode5,
                                                tclassidnode6
                                        )
-                                       var tidnode7 = nodearraylist5
+                                       var tidnode7 = nodearraylist2
                                        assert tidnode7 isa nullable TId
                                        var pqidnode3: nullable AQid = new AQid.init_aqid(
                                                pqualifiednode4,
                                                tidnode7
                                        )
-                                       var pexprsnode8 = nodearraylist6
+                                       var pexprsnode8 = nodearraylist3
                                        assert pexprsnode8 isa nullable AExprs
-                                       var passignopnode9 = nodearraylist7
-                                       assert passignopnode9 isa nullable AAssignOp
-                                       var pexprnode10 = nodearraylist8
+                                       var tassignnode9 = nodearraylist4
+                                       assert tassignnode9 isa nullable TAssign
+                                       var pexprnode10 = nodearraylist5
                                        assert pexprnode10 isa nullable AExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
                                                pqidnode3,
                                                pexprsnode8,
-                                               passignopnode9,
+                                               tassignnode9,
                                                pexprnode10
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction232
+private class ReduceAction244
        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 pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
                                        var listnode5 = new Array[Object]
-                                       var tclassidnode6 = nodearraylist4
+                                       var tclassidnode6 = nodearraylist1
                                        assert tclassidnode6 isa nullable TClassid
                                        var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
                                                listnode5,
                                                tclassidnode6
                                        )
-                                       var tidnode7 = nodearraylist5
+                                       var tidnode7 = nodearraylist2
                                        assert tidnode7 isa nullable TId
                                        var pqidnode3: nullable AQid = new AQid.init_aqid(
                                                pqualifiednode4,
@@ -6906,96 +7575,88 @@ private class ReduceAction232
                                        var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
                                                listnode9
                                        )
-                                       var passignopnode10 = nodearraylist6
-                                       assert passignopnode10 isa nullable AAssignOp
-                                       var pexprnode11 = nodearraylist7
+                                       var tassignnode10 = nodearraylist3
+                                       assert tassignnode10 isa nullable TAssign
+                                       var pexprnode11 = nodearraylist4
                                        assert pexprnode11 isa nullable AExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
                                                pqidnode3,
                                                pexprsnode8,
-                                               passignopnode10,
+                                               tassignnode10,
                                                pexprnode11
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction233
+private class ReduceAction245
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
                                        var listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist4
+                                       var listnode5 = nodearraylist1
                                        assert listnode5 isa Array[Object]
                                        listnode6 = concat(listnode6, listnode5)
-                                       var tclassidnode7 = nodearraylist5
+                                       var tclassidnode7 = nodearraylist2
                                        assert tclassidnode7 isa nullable TClassid
                                        var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
                                                listnode6,
                                                tclassidnode7
                                        )
-                                       var tidnode8 = nodearraylist6
+                                       var tidnode8 = nodearraylist3
                                        assert tidnode8 isa nullable TId
                                        var pqidnode3: nullable AQid = new AQid.init_aqid(
                                                pqualifiednode4,
                                                tidnode8
                                        )
-                                       var pexprsnode9 = nodearraylist7
+                                       var pexprsnode9 = nodearraylist4
                                        assert pexprsnode9 isa nullable AExprs
-                                       var passignopnode10 = nodearraylist8
-                                       assert passignopnode10 isa nullable AAssignOp
-                                       var pexprnode11 = nodearraylist9
+                                       var tassignnode10 = nodearraylist5
+                                       assert tassignnode10 isa nullable TAssign
+                                       var pexprnode11 = nodearraylist6
                                        assert pexprnode11 isa nullable AExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
                                                pqidnode3,
                                                pexprsnode9,
-                                               passignopnode10,
+                                               tassignnode10,
                                                pexprnode11
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction234
+private class ReduceAction246
        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 pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
                                        var listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist4
+                                       var listnode5 = nodearraylist1
                                        assert listnode5 isa Array[Object]
                                        listnode6 = concat(listnode6, listnode5)
-                                       var tclassidnode7 = nodearraylist5
+                                       var tclassidnode7 = nodearraylist2
                                        assert tclassidnode7 isa nullable TClassid
                                        var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
                                                listnode6,
                                                tclassidnode7
                                        )
-                                       var tidnode8 = nodearraylist6
+                                       var tidnode8 = nodearraylist3
                                        assert tidnode8 isa nullable TId
                                        var pqidnode3: nullable AQid = new AQid.init_aqid(
                                                pqualifiednode4,
@@ -7005,90 +7666,82 @@ private class ReduceAction234
                                        var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
                                                listnode10
                                        )
-                                       var passignopnode11 = nodearraylist7
-                                       assert passignopnode11 isa nullable AAssignOp
-                                       var pexprnode12 = nodearraylist8
+                                       var tassignnode11 = nodearraylist4
+                                       assert tassignnode11 isa nullable TAssign
+                                       var pexprnode12 = nodearraylist5
                                        assert pexprnode12 isa nullable AExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
                                                pqidnode3,
                                                pexprsnode9,
-                                               passignopnode11,
+                                               tassignnode11,
                                                pexprnode12
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction235
+private class ReduceAction247
        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 pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
                                        var listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist4
+                                       var listnode5 = nodearraylist1
                                        assert listnode5 isa Array[Object]
                                        listnode6 = concat(listnode6, listnode5)
                                        var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
                                                listnode6,
                                                null
                                        )
-                                       var tidnode8 = nodearraylist5
+                                       var tidnode8 = nodearraylist2
                                        assert tidnode8 isa nullable TId
                                        var pqidnode3: nullable AQid = new AQid.init_aqid(
                                                pqualifiednode4,
                                                tidnode8
                                        )
-                                       var pexprsnode9 = nodearraylist6
+                                       var pexprsnode9 = nodearraylist3
                                        assert pexprsnode9 isa nullable AExprs
-                                       var passignopnode10 = nodearraylist7
-                                       assert passignopnode10 isa nullable AAssignOp
-                                       var pexprnode11 = nodearraylist8
+                                       var tassignnode10 = nodearraylist4
+                                       assert tassignnode10 isa nullable TAssign
+                                       var pexprnode11 = nodearraylist5
                                        assert pexprnode11 isa nullable AExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
                                                pqidnode3,
                                                pexprsnode9,
-                                               passignopnode10,
+                                               tassignnode10,
                                                pexprnode11
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction236
+private class ReduceAction248
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
                                        var listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist4
+                                       var listnode5 = nodearraylist1
                                        assert listnode5 isa Array[Object]
                                        listnode6 = concat(listnode6, listnode5)
                                        var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
                                                listnode6,
                                                null
                                        )
-                                       var tidnode8 = nodearraylist5
+                                       var tidnode8 = nodearraylist2
                                        assert tidnode8 isa nullable TId
                                        var pqidnode3: nullable AQid = new AQid.init_aqid(
                                                pqualifiednode4,
@@ -7098,22 +7751,116 @@ private class ReduceAction236
                                        var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
                                                listnode10
                                        )
-                                       var passignopnode11 = nodearraylist6
-                                       assert passignopnode11 isa nullable AAssignOp
-                                       var pexprnode12 = nodearraylist7
+                                       var tassignnode11 = nodearraylist3
+                                       assert tassignnode11 isa nullable TAssign
+                                       var pexprnode12 = nodearraylist4
                                        assert pexprnode12 isa nullable AExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
                                                pqidnode3,
                                                pexprsnode9,
-                                               passignopnode11,
+                                               tassignnode11,
                                                pexprnode12
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction237
+private class ReduceAction249
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var 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 ReduceAction250
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist5
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var passignopnode4 = nodearraylist6
+                                       assert passignopnode4 isa nullable AAssignOp
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction251
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tattridnode5 = nodearraylist6
+                                       assert tattridnode5 isa nullable TAttrid
+                                       var passignopnode6 = nodearraylist7
+                                       assert passignopnode6 isa nullable AAssignOp
+                                       var pexprnode7 = nodearraylist8
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                               pexprnode2,
+                                               tattridnode5,
+                                               passignopnode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction252
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7123,17 +7870,47 @@ private class ReduceAction237
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tidnode5 = nodearraylist1
+                                       var tattridnode3 = nodearraylist2
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var passignopnode4 = nodearraylist3
+                                       assert passignopnode4 isa nullable AAssignOp
+                                       var pexprnode5 = nodearraylist4
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction253
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode5 = nodearraylist4
                                        assert tidnode5 isa nullable TId
                                        var pqidnode3: nullable AQid = new AQid.init_aqid(
                                                null,
                                                tidnode5
                                        )
-                                       var pexprsnode6 = nodearraylist2
+                                       var pexprsnode6 = nodearraylist5
                                        assert pexprsnode6 isa nullable AExprs
-                                       var passignopnode7 = nodearraylist3
+                                       var passignopnode7 = nodearraylist6
                                        assert passignopnode7 isa nullable AAssignOp
-                                       var pexprnode8 = nodearraylist4
+                                       var pexprnode8 = nodearraylist7
                                        assert pexprnode8 isa nullable AExpr
                                        var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
@@ -7146,16 +7923,20 @@ private class ReduceAction237
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction238
+private class ReduceAction254
        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 tidnode5 = nodearraylist1
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode5 = nodearraylist4
                                        assert tidnode5 isa nullable TId
                                        var pqidnode3: nullable AQid = new AQid.init_aqid(
                                                null,
@@ -7165,9 +7946,9 @@ private class ReduceAction238
                                        var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
                                                listnode7
                                        )
-                                       var passignopnode8 = nodearraylist2
+                                       var passignopnode8 = nodearraylist5
                                        assert passignopnode8 isa nullable AAssignOp
-                                       var pexprnode9 = nodearraylist3
+                                       var pexprnode9 = nodearraylist6
                                        assert pexprnode9 isa nullable AExpr
                                        var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
@@ -7180,35 +7961,39 @@ private class ReduceAction238
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction239
+private class ReduceAction255
        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 pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
                                        var listnode5 = new Array[Object]
-                                       var tclassidnode6 = nodearraylist1
+                                       var tclassidnode6 = nodearraylist4
                                        assert tclassidnode6 isa nullable TClassid
                                        var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
                                                listnode5,
                                                tclassidnode6
                                        )
-                                       var tidnode7 = nodearraylist2
+                                       var tidnode7 = nodearraylist5
                                        assert tidnode7 isa nullable TId
                                        var pqidnode3: nullable AQid = new AQid.init_aqid(
                                                pqualifiednode4,
                                                tidnode7
                                        )
-                                       var pexprsnode8 = nodearraylist3
+                                       var pexprsnode8 = nodearraylist6
                                        assert pexprsnode8 isa nullable AExprs
-                                       var passignopnode9 = nodearraylist4
+                                       var passignopnode9 = nodearraylist7
                                        assert passignopnode9 isa nullable AAssignOp
-                                       var pexprnode10 = nodearraylist5
+                                       var pexprnode10 = nodearraylist8
                                        assert pexprnode10 isa nullable AExpr
                                        var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
@@ -7221,24 +8006,28 @@ private class ReduceAction239
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction240
+private class ReduceAction256
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
                                        var listnode5 = new Array[Object]
-                                       var tclassidnode6 = nodearraylist1
+                                       var tclassidnode6 = nodearraylist4
                                        assert tclassidnode6 isa nullable TClassid
                                        var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
                                                listnode5,
                                                tclassidnode6
                                        )
-                                       var tidnode7 = nodearraylist2
+                                       var tidnode7 = nodearraylist5
                                        assert tidnode7 isa nullable TId
                                        var pqidnode3: nullable AQid = new AQid.init_aqid(
                                                pqualifiednode4,
@@ -7248,9 +8037,9 @@ private class ReduceAction240
                                        var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
                                                listnode9
                                        )
-                                       var passignopnode10 = nodearraylist3
+                                       var passignopnode10 = nodearraylist6
                                        assert passignopnode10 isa nullable AAssignOp
-                                       var pexprnode11 = nodearraylist4
+                                       var pexprnode11 = nodearraylist7
                                        assert pexprnode11 isa nullable AExpr
                                        var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
@@ -7263,39 +8052,43 @@ private class ReduceAction240
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction241
+private class ReduceAction257
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var 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 pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
                                        var listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist1
+                                       var listnode5 = nodearraylist4
                                        assert listnode5 isa Array[Object]
                                        listnode6 = concat(listnode6, listnode5)
-                                       var tclassidnode7 = nodearraylist2
+                                       var tclassidnode7 = nodearraylist5
                                        assert tclassidnode7 isa nullable TClassid
                                        var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
                                                listnode6,
                                                tclassidnode7
                                        )
-                                       var tidnode8 = nodearraylist3
+                                       var tidnode8 = nodearraylist6
                                        assert tidnode8 isa nullable TId
                                        var pqidnode3: nullable AQid = new AQid.init_aqid(
                                                pqualifiednode4,
                                                tidnode8
                                        )
-                                       var pexprsnode9 = nodearraylist4
+                                       var pexprsnode9 = nodearraylist7
                                        assert pexprsnode9 isa nullable AExprs
-                                       var passignopnode10 = nodearraylist5
+                                       var passignopnode10 = nodearraylist8
                                        assert passignopnode10 isa nullable AAssignOp
-                                       var pexprnode11 = nodearraylist6
+                                       var pexprnode11 = nodearraylist9
                                        assert pexprnode11 isa nullable AExpr
                                        var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
@@ -7308,28 +8101,32 @@ private class ReduceAction241
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction242
+private class ReduceAction258
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
                                        var listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist1
+                                       var listnode5 = nodearraylist4
                                        assert listnode5 isa Array[Object]
                                        listnode6 = concat(listnode6, listnode5)
-                                       var tclassidnode7 = nodearraylist2
+                                       var tclassidnode7 = nodearraylist5
                                        assert tclassidnode7 isa nullable TClassid
                                        var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
                                                listnode6,
                                                tclassidnode7
                                        )
-                                       var tidnode8 = nodearraylist3
+                                       var tidnode8 = nodearraylist6
                                        assert tidnode8 isa nullable TId
                                        var pqidnode3: nullable AQid = new AQid.init_aqid(
                                                pqualifiednode4,
@@ -7339,9 +8136,9 @@ private class ReduceAction242
                                        var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
                                                listnode10
                                        )
-                                       var passignopnode11 = nodearraylist4
+                                       var passignopnode11 = nodearraylist7
                                        assert passignopnode11 isa nullable AAssignOp
-                                       var pexprnode12 = nodearraylist5
+                                       var pexprnode12 = nodearraylist8
                                        assert pexprnode12 isa nullable AExpr
                                        var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
@@ -7354,36 +8151,40 @@ private class ReduceAction242
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction243
+private class ReduceAction259
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
                                        var listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist1
+                                       var listnode5 = nodearraylist4
                                        assert listnode5 isa Array[Object]
                                        listnode6 = concat(listnode6, listnode5)
                                        var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
                                                listnode6,
                                                null
                                        )
-                                       var tidnode8 = nodearraylist2
+                                       var tidnode8 = nodearraylist5
                                        assert tidnode8 isa nullable TId
                                        var pqidnode3: nullable AQid = new AQid.init_aqid(
                                                pqualifiednode4,
                                                tidnode8
                                        )
-                                       var pexprsnode9 = nodearraylist3
+                                       var pexprsnode9 = nodearraylist6
                                        assert pexprsnode9 isa nullable AExprs
-                                       var passignopnode10 = nodearraylist4
+                                       var passignopnode10 = nodearraylist7
                                        assert passignopnode10 isa nullable AAssignOp
-                                       var pexprnode11 = nodearraylist5
+                                       var pexprnode11 = nodearraylist8
                                        assert pexprnode11 isa nullable AExpr
                                        var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
@@ -7396,25 +8197,29 @@ private class ReduceAction243
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction244
+private class ReduceAction260
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
                                        var listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist1
+                                       var listnode5 = nodearraylist4
                                        assert listnode5 isa Array[Object]
                                        listnode6 = concat(listnode6, listnode5)
                                        var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
                                                listnode6,
                                                null
                                        )
-                                       var tidnode8 = nodearraylist2
+                                       var tidnode8 = nodearraylist5
                                        assert tidnode8 isa nullable TId
                                        var pqidnode3: nullable AQid = new AQid.init_aqid(
                                                pqualifiednode4,
@@ -7424,9 +8229,9 @@ private class ReduceAction244
                                        var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
                                                listnode10
                                        )
-                                       var passignopnode11 = nodearraylist3
+                                       var passignopnode11 = nodearraylist6
                                        assert passignopnode11 isa nullable AAssignOp
-                                       var pexprnode12 = nodearraylist4
+                                       var pexprnode12 = nodearraylist7
                                        assert pexprnode12 isa nullable AExpr
                                        var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
@@ -7439,246 +8244,1588 @@ private class ReduceAction244
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction245
+private class ReduceAction261
        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 pexprsnode3 = nodearraylist2
-                                       assert pexprsnode3 isa nullable AExprs
-                                       var passignopnode4 = nodearraylist3
-                                       assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist4
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable ABraReassignExpr = new ABraReassignExpr.init_abrareassignexpr(
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist6
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var passignopnode9 = nodearraylist7
+                                       assert passignopnode9 isa nullable AAssignOp
+                                       var pexprnode10 = nodearraylist8
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
-                                               pexprsnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                               pqidnode5,
+                                               pexprsnode8,
+                                               passignopnode9,
+                                               pexprnode10
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction246
+private class ReduceAction262
        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 tpluseqnode2 = nodearraylist1
-                                       assert tpluseqnode2 isa nullable TPluseq
-                                       var passignopnode1: nullable APlusAssignOp = new APlusAssignOp.init_aplusassignop(
-                                               tpluseqnode2
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
                                        )
-                                       node_list = passignopnode1
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var passignopnode10 = nodearraylist6
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist7
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode8,
+                                               passignopnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction247
+private class ReduceAction263
        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 tminuseqnode2 = nodearraylist1
-                                       assert tminuseqnode2 isa nullable TMinuseq
-                                       var passignopnode1: nullable AMinusAssignOp = new AMinusAssignOp.init_aminusassignop(
-                                               tminuseqnode2
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
                                        )
-                                       node_list = passignopnode1
+                                       var listnode7 = new Array[Object]
+                                       var tclassidnode8 = nodearraylist5
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist6
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist7
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var passignopnode11 = nodearraylist8
+                                       assert passignopnode11 isa nullable AAssignOp
+                                       var pexprnode12 = nodearraylist9
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode10,
+                                               passignopnode11,
+                                               pexprnode12
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction248
+private class ReduceAction264
        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 tstareqnode2 = nodearraylist1
-                                       assert tstareqnode2 isa nullable TStareq
-                                       var passignopnode1: nullable AStarAssignOp = new AStarAssignOp.init_astarassignop(
-                                               tstareqnode2
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
                                        )
-                                       node_list = passignopnode1
+                                       var listnode7 = new Array[Object]
+                                       var tclassidnode8 = nodearraylist5
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist6
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var passignopnode12 = nodearraylist7
+                                       assert passignopnode12 isa nullable AAssignOp
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode10,
+                                               passignopnode12,
+                                               pexprnode13
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction249
+private class ReduceAction265
        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 tslasheqnode2 = nodearraylist1
-                                       assert tslasheqnode2 isa nullable TSlasheq
-                                       var passignopnode1: nullable ASlashAssignOp = new ASlashAssignOp.init_aslashassignop(
-                                               tslasheqnode2
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
                                        )
-                                       node_list = passignopnode1
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tclassidnode9 = nodearraylist6
+                                       assert tclassidnode9 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               tclassidnode9
+                                       )
+                                       var tidnode10 = nodearraylist7
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var pexprsnode11 = nodearraylist8
+                                       assert pexprsnode11 isa nullable AExprs
+                                       var passignopnode12 = nodearraylist9
+                                       assert passignopnode12 isa nullable AAssignOp
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               passignopnode12,
+                                               pexprnode13
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction250
+private class ReduceAction266
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tpercenteqnode2 = nodearraylist1
-                                       assert tpercenteqnode2 isa nullable TPercenteq
-                                       var passignopnode1: nullable APercentAssignOp = new APercentAssignOp.init_apercentassignop(
-                                               tpercenteqnode2
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
                                        )
-                                       node_list = passignopnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tclassidnode9 = nodearraylist6
+                                       assert tclassidnode9 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               tclassidnode9
+                                       )
+                                       var tidnode10 = nodearraylist7
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var listnode12 = new Array[Object]
+                                       var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode12
+                                       )
+                                       var passignopnode13 = nodearraylist8
+                                       assert passignopnode13 isa nullable AAssignOp
+                                       var pexprnode14 = nodearraylist9
+                                       assert pexprnode14 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               passignopnode13,
+                                               pexprnode14
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction267
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               null
+                                       )
+                                       var tidnode10 = nodearraylist6
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var pexprsnode11 = nodearraylist7
+                                       assert pexprsnode11 isa nullable AExprs
+                                       var passignopnode12 = nodearraylist8
+                                       assert passignopnode12 isa nullable AAssignOp
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               passignopnode12,
+                                               pexprnode13
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction268
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               null
+                                       )
+                                       var tidnode10 = nodearraylist6
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var listnode12 = new Array[Object]
+                                       var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode12
+                                       )
+                                       var passignopnode13 = nodearraylist7
+                                       assert passignopnode13 isa nullable AAssignOp
+                                       var pexprnode14 = nodearraylist8
+                                       assert pexprnode14 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               passignopnode13,
+                                               pexprnode14
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction269
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode5 = nodearraylist1
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var pexprsnode6 = nodearraylist2
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var passignopnode7 = nodearraylist3
+                                       assert passignopnode7 isa nullable AAssignOp
+                                       var pexprnode8 = nodearraylist4
+                                       assert pexprnode8 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6,
+                                               passignopnode7,
+                                               pexprnode8
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction270
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode5 = nodearraylist1
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode7
+                                       )
+                                       var passignopnode8 = nodearraylist2
+                                       assert passignopnode8 isa nullable AAssignOp
+                                       var pexprnode9 = nodearraylist3
+                                       assert pexprnode9 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6,
+                                               passignopnode8,
+                                               pexprnode9
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction271
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist1
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist2
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist3
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var passignopnode9 = nodearraylist4
+                                       assert passignopnode9 isa nullable AAssignOp
+                                       var pexprnode10 = nodearraylist5
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               passignopnode9,
+                                               pexprnode10
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction272
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist1
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist2
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var passignopnode10 = nodearraylist3
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist4
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               passignopnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction273
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist4
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var passignopnode10 = nodearraylist5
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist6
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               passignopnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction274
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var passignopnode11 = nodearraylist4
+                                       assert passignopnode11 isa nullable AAssignOp
+                                       var pexprnode12 = nodearraylist5
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               passignopnode11,
+                                               pexprnode12
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction275
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist2
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist3
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var passignopnode10 = nodearraylist4
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist5
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               passignopnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction276
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist2
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var passignopnode11 = nodearraylist3
+                                       assert passignopnode11 isa nullable AAssignOp
+                                       var pexprnode12 = nodearraylist4
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               passignopnode11,
+                                               pexprnode12
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction277
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprsnode3 = nodearraylist2
+                                       assert pexprsnode3 isa nullable AExprs
+                                       var passignopnode4 = nodearraylist3
+                                       assert passignopnode4 isa nullable AAssignOp
+                                       var pexprnode5 = nodearraylist4
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable ABraReassignExpr = new ABraReassignExpr.init_abrareassignexpr(
+                                               pexprnode2,
+                                               pexprsnode3,
+                                               passignopnode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction278
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tpluseqnode2 = nodearraylist1
+                                       assert tpluseqnode2 isa nullable TPluseq
+                                       var passignopnode1: nullable APlusAssignOp = new APlusAssignOp.init_aplusassignop(
+                                               tpluseqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction279
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tminuseqnode2 = nodearraylist1
+                                       assert tminuseqnode2 isa nullable TMinuseq
+                                       var passignopnode1: nullable AMinusAssignOp = new AMinusAssignOp.init_aminusassignop(
+                                               tminuseqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction280
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstareqnode2 = nodearraylist1
+                                       assert tstareqnode2 isa nullable TStareq
+                                       var passignopnode1: nullable AStarAssignOp = new AStarAssignOp.init_astarassignop(
+                                               tstareqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction281
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tslasheqnode2 = nodearraylist1
+                                       assert tslasheqnode2 isa nullable TSlasheq
+                                       var passignopnode1: nullable ASlashAssignOp = new ASlashAssignOp.init_aslashassignop(
+                                               tslasheqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction282
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tpercenteqnode2 = nodearraylist1
+                                       assert tpercenteqnode2 isa nullable TPercenteq
+                                       var passignopnode1: nullable APercentAssignOp = new APercentAssignOp.init_apercentassignop(
+                                               tpercenteqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction283
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstarstareqnode2 = nodearraylist1
+                                       assert tstarstareqnode2 isa nullable TStarstareq
+                                       var passignopnode1: nullable AStarstarAssignOp = new AStarstarAssignOp.init_astarstarassignop(
+                                               tstarstareqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction284
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tpipeeqnode2 = nodearraylist1
+                                       assert tpipeeqnode2 isa nullable TPipeeq
+                                       var passignopnode1: nullable APipeAssignOp = new APipeAssignOp.init_apipeassignop(
+                                               tpipeeqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction285
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tcareteqnode2 = nodearraylist1
+                                       assert tcareteqnode2 isa nullable TCareteq
+                                       var passignopnode1: nullable ACaretAssignOp = new ACaretAssignOp.init_acaretassignop(
+                                               tcareteqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction286
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tampeqnode2 = nodearraylist1
+                                       assert tampeqnode2 isa nullable TAmpeq
+                                       var passignopnode1: nullable AAmpAssignOp = new AAmpAssignOp.init_aampassignop(
+                                               tampeqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction287
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tlleqnode2 = nodearraylist1
+                                       assert tlleqnode2 isa nullable TLleq
+                                       var passignopnode1: nullable ALlAssignOp = new ALlAssignOp.init_allassignop(
+                                               tlleqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction288
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tggeqnode2 = nodearraylist1
+                                       assert tggeqnode2 isa nullable TGgeq
+                                       var passignopnode1: nullable AGgAssignOp = new AGgAssignOp.init_aggassignop(
+                                               tggeqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction289
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var plabelnode6 = nodearraylist3
+                                       assert plabelnode6 isa nullable ALabel
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               null,
+                                               null,
+                                               plabelnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction290
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction291
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwcatchnode4 = nodearraylist4
+                                       assert tkwcatchnode4 isa nullable TKwcatch
+                                       var pexprnode5 = nodearraylist5
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               tkwcatchnode4,
+                                               pexprnode5,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction292
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var tkwelsenode6 = nodearraylist7
+                                       assert tkwelsenode6 isa nullable TKwelse
+                                       var pexprnode7 = nodearraylist8
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               tkwelsenode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction293
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction294
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var tkwelsenode6 = nodearraylist8
+                                       assert tkwelsenode6 isa nullable TKwelse
+                                       var pexprnode7 = nodearraylist9
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               tkwelsenode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction295
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var tkwelsenode6 = nodearraylist6
+                                       assert tkwelsenode6 isa nullable TKwelse
+                                       var pexprnode7 = nodearraylist7
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               null,
+                                               tkwelsenode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction296
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var tkwelsenode6 = nodearraylist7
+                                       assert tkwelsenode6 isa nullable TKwelse
+                                       var pexprnode7 = nodearraylist8
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               null,
+                                               tkwelsenode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
 end
-private class ReduceAction251
+private class ReduceAction297
        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 tstarstareqnode2 = nodearraylist1
-                                       assert tstarstareqnode2 isa nullable TStarstareq
-                                       var passignopnode1: nullable AStarstarAssignOp = new AStarstarAssignOp.init_astarstarassignop(
-                                               tstarstareqnode2
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode7 = nodearraylist8
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               null,
+                                               pexprnode7
                                        )
-                                       node_list = passignopnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction252
+private class ReduceAction298
        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 tpipeeqnode2 = nodearraylist1
-                                       assert tpipeeqnode2 isa nullable TPipeeq
-                                       var passignopnode1: nullable APipeAssignOp = new APipeAssignOp.init_apipeassignop(
-                                               tpipeeqnode2
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode7 = nodearraylist6
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               null,
+                                               null,
+                                               pexprnode7
                                        )
-                                       node_list = passignopnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction253
+private class ReduceAction299
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode7 = nodearraylist7
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               null,
+                                               null,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction301
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwloopnode2 = nodearraylist1
+                                       assert tkwloopnode2 isa nullable TKwloop
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var plabelnode4 = nodearraylist3
+                                       assert plabelnode4 isa nullable ALabel
+                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
+                                               tkwloopnode2,
+                                               pexprnode3,
+                                               plabelnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction302
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwloopnode2 = nodearraylist1
+                                       assert tkwloopnode2 isa nullable TKwloop
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
+                                               tkwloopnode2,
+                                               pexprnode3,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction303
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var plabelnode6 = nodearraylist7
+                                       assert plabelnode6 isa nullable ALabel
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction304
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction305
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tkwdonode5 = nodearraylist5
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var plabelnode7 = nodearraylist7
+                                       assert plabelnode7 isa nullable ALabel
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction306
        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 tcareteqnode2 = nodearraylist1
-                                       assert tcareteqnode2 isa nullable TCareteq
-                                       var passignopnode1: nullable ACaretAssignOp = new ACaretAssignOp.init_acaretassignop(
-                                               tcareteqnode2
+                                       var listnode4 = new Array[Object]
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tkwdonode5 = nodearraylist5
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
                                        )
-                                       node_list = passignopnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction254
+private class ReduceAction307
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tampeqnode2 = nodearraylist1
-                                       assert tampeqnode2 isa nullable TAmpeq
-                                       var passignopnode1: nullable AAmpAssignOp = new AAmpAssignOp.init_aampassignop(
-                                               tampeqnode2
-                                       )
-                                       node_list = passignopnode1
+                                       var listnode2 = new Array[Object]
+                                       var pforgroupnode1 = nodearraylist1
+                                       if pforgroupnode1 != null then
+                                               listnode2.add(pforgroupnode1)
+                                       end
+                                       node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction255
+private class ReduceAction308
        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 tlleqnode2 = nodearraylist1
-                                       assert tlleqnode2 isa nullable TLleq
-                                       var passignopnode1: nullable ALlAssignOp = new ALlAssignOp.init_allassignop(
-                                               tlleqnode2
-                                       )
-                                       node_list = passignopnode1
+                                       var listnode3 = new Array[Object]
+                                       var listnode1 = nodearraylist1
+                                       assert listnode1 isa Array[Object]
+                                       var pforgroupnode2 = nodearraylist5
+                                       listnode3 = concat(listnode3, listnode1)
+                                       if pforgroupnode2 != null then
+                                               listnode3.add(pforgroupnode2)
+                                       end
+                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction256
+private class ReduceAction309
        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 tggeqnode2 = nodearraylist1
-                                       assert tggeqnode2 isa nullable TGgeq
-                                       var passignopnode1: nullable AGgAssignOp = new AGgAssignOp.init_aggassignop(
-                                               tggeqnode2
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var tkwinnode4 = nodearraylist3
+                                       assert tkwinnode4 isa nullable TKwin
+                                       var pexprnode5 = nodearraylist5
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pforgroupnode1: nullable AForGroup = new AForGroup.init_aforgroup(
+                                               listnode3,
+                                               tkwinnode4,
+                                               pexprnode5
                                        )
-                                       node_list = passignopnode1
+                                       node_list = pforgroupnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction257
+private class ReduceAction310
        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 tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var pexprnode3 = nodearraylist2
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var pexprnode3 = nodearraylist3
                                        assert pexprnode3 isa nullable AExpr
-                                       var plabelnode6 = nodearraylist3
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var plabelnode6 = nodearraylist7
                                        assert plabelnode6 isa nullable ALabel
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
+                                       var pexprnode1: nullable AWithExpr = new AWithExpr.init_awithexpr(
+                                               tkwwithnode2,
                                                pexprnode3,
-                                               null,
-                                               null,
+                                               tkwdonode4,
+                                               pexprnode5,
                                                plabelnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction258
+private class ReduceAction311
        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 tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var pexprnode3 = nodearraylist2
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var pexprnode3 = nodearraylist3
                                        assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AWithExpr = new AWithExpr.init_awithexpr(
+                                               tkwwithnode2,
                                                pexprnode3,
-                                               null,
-                                               null,
+                                               tkwdonode4,
+                                               pexprnode5,
                                                null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction259
+private class ReduceAction312
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7688,205 +9835,185 @@ private class ReduceAction259
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwcatchnode4 = nodearraylist4
-                                       assert tkwcatchnode4 isa nullable TKwcatch
-                                       var pexprnode5 = nodearraylist5
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               tkwcatchnode4,
-                                               pexprnode5,
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist2
+                                       assert ptypenode4 isa nullable AType
+                                       var tassignnode5 = nodearraylist3
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist5
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               null,
+                                               tidnode3,
+                                               ptypenode4,
+                                               tassignnode5,
+                                               pexprnode6,
                                                null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction260
+private class ReduceAction313
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwthennode4 = nodearraylist5
-                                       assert tkwthennode4 isa nullable TKwthen
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var tkwelsenode6 = nodearraylist7
-                                       assert tkwelsenode6 isa nullable TKwelse
-                                       var pexprnode7 = nodearraylist8
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               tkwthennode4,
-                                               pexprnode5,
-                                               tkwelsenode6,
-                                               pexprnode7
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist3
+                                       assert ptypenode4 isa nullable AType
+                                       var tassignnode5 = nodearraylist4
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pannotationsnode7 = nodearraylist2
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               null,
+                                               tidnode3,
+                                               ptypenode4,
+                                               tassignnode5,
+                                               pexprnode6,
+                                               pannotationsnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction261
+private class ReduceAction315
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwthennode4 = nodearraylist5
-                                       assert tkwthennode4 isa nullable TKwthen
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               tkwthennode4,
-                                               pexprnode5,
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa nullable TKwassert
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwelsenode5 = nodearraylist3
+                                       assert tkwelsenode5 isa nullable TKwelse
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
                                                null,
-                                               null
+                                               pexprnode4,
+                                               tkwelsenode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction262
+private class ReduceAction316
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwthennode4 = nodearraylist5
-                                       assert tkwthennode4 isa nullable TKwthen
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable AExpr
-                                       var tkwelsenode6 = nodearraylist8
-                                       assert tkwelsenode6 isa nullable TKwelse
-                                       var pexprnode7 = nodearraylist9
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               tkwthennode4,
-                                               pexprnode5,
-                                               tkwelsenode6,
-                                               pexprnode7
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa nullable TKwassert
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwelsenode5 = nodearraylist4
+                                       assert tkwelsenode5 isa nullable TKwelse
+                                       var pexprnode6 = nodearraylist5
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               tkwelsenode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction263
+private class ReduceAction317
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwthennode4 = nodearraylist5
-                                       assert tkwthennode4 isa nullable TKwthen
-                                       var tkwelsenode6 = nodearraylist6
-                                       assert tkwelsenode6 isa nullable TKwelse
-                                       var pexprnode7 = nodearraylist7
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               tkwthennode4,
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa nullable TKwassert
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
                                                null,
-                                               tkwelsenode6,
-                                               pexprnode7
+                                               pexprnode4,
+                                               null,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction264
+private class ReduceAction318
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwthennode4 = nodearraylist5
-                                       assert tkwthennode4 isa nullable TKwthen
-                                       var tkwelsenode6 = nodearraylist7
-                                       assert tkwelsenode6 isa nullable TKwelse
-                                       var pexprnode7 = nodearraylist8
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               tkwthennode4,
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa nullable TKwassert
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               tidnode3,
+                                               pexprnode4,
                                                null,
-                                               tkwelsenode6,
-                                               pexprnode7
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction265
+private class ReduceAction319
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tidnode1 = nodearraylist1
+                                       node_list = tidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction321
        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
@@ -7903,447 +10030,383 @@ private class ReduceAction265
                                        assert tkwthennode4 isa nullable TKwthen
                                        var pexprnode5 = nodearraylist7
                                        assert pexprnode5 isa nullable AExpr
-                                       var pexprnode7 = nodearraylist8
+                                       var tkwelsenode6 = nodearraylist9
+                                       assert tkwelsenode6 isa nullable TKwelse
+                                       var pexprnode7 = nodearraylist11
                                        assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                       var pexprnode1: nullable AIfexprExpr = new AIfexprExpr.init_aifexprexpr(
                                                tkwifnode2,
                                                pexprnode3,
                                                tkwthennode4,
                                                pexprnode5,
-                                               null,
+                                               tkwelsenode6,
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction266
+private class ReduceAction323
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwthennode4 = nodearraylist5
-                                       assert tkwthennode4 isa nullable TKwthen
-                                       var pexprnode7 = nodearraylist6
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               tkwthennode4,
-                                               null,
-                                               null,
-                                               pexprnode7
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwornode3 = nodearraylist2
+                                       assert tkwornode3 isa nullable TKwor
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
+                                               pexprnode2,
+                                               tkwornode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction267
+private class ReduceAction324
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwthennode4 = nodearraylist5
-                                       assert tkwthennode4 isa nullable TKwthen
-                                       var pexprnode7 = nodearraylist7
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               tkwthennode4,
-                                               null,
-                                               null,
-                                               pexprnode7
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwandnode3 = nodearraylist2
+                                       assert tkwandnode3 isa nullable TKwand
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
+                                               pexprnode2,
+                                               tkwandnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction269
+private class ReduceAction325
        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 tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var plabelnode4 = nodearraylist3
-                                       assert plabelnode4 isa nullable ALabel
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               plabelnode4
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwornode3 = nodearraylist2
+                                       assert tkwornode3 isa nullable TKwor
+                                       var tkwelsenode4 = nodearraylist3
+                                       assert tkwelsenode4 isa nullable TKwelse
+                                       var pexprnode5 = nodearraylist5
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AOrElseExpr = new AOrElseExpr.init_aorelseexpr(
+                                               pexprnode2,
+                                               tkwornode3,
+                                               tkwelsenode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction270
+private class ReduceAction326
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwimpliesnode3 = nodearraylist2
+                                       assert tkwimpliesnode3 isa nullable TKwimplies
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AImpliesExpr = new AImpliesExpr.init_aimpliesexpr(
+                                               pexprnode2,
+                                               tkwimpliesnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction271
+private class ReduceAction328
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var tkwnotnode2 = nodearraylist1
+                                       assert tkwnotnode2 isa nullable TKwnot
                                        var pexprnode3 = nodearraylist3
                                        assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var plabelnode6 = nodearraylist7
-                                       assert plabelnode6 isa nullable ALabel
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode6
+                                       var pexprnode1: nullable ANotExpr = new ANotExpr.init_anotexpr(
+                                               tkwnotnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction272
+private class ReduceAction330
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var teqnode3 = nodearraylist2
+                                       assert teqnode3 isa nullable TEq
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
+                                               pexprnode2,
+                                               teqnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction273
+private class ReduceAction331
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tkwdonode5 = nodearraylist5
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var pexprnode6 = nodearraylist6
-                                       assert pexprnode6 isa nullable AExpr
-                                       var plabelnode7 = nodearraylist7
-                                       assert plabelnode7 isa nullable ALabel
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode7
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tnenode3 = nodearraylist2
+                                       assert tnenode3 isa nullable TNe
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
+                                               pexprnode2,
+                                               tnenode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction274
+private class ReduceAction332
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tkwdonode5 = nodearraylist5
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var pexprnode6 = nodearraylist6
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tltnode3 = nodearraylist2
+                                       assert tltnode3 isa nullable TLt
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
+                                               pexprnode2,
+                                               tltnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction275
+private class ReduceAction333
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pforgroupnode1 = nodearraylist1
-                                       if pforgroupnode1 != null then
-                                               listnode2.add(pforgroupnode1)
-                                       end
-                                       node_list = listnode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tlenode3 = nodearraylist2
+                                       assert tlenode3 isa nullable TLe
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
+                                               pexprnode2,
+                                               tlenode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction276
+private class ReduceAction334
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode1 = nodearraylist1
-                                       assert listnode1 isa Array[Object]
-                                       var pforgroupnode2 = nodearraylist5
-                                       listnode3 = concat(listnode3, listnode1)
-                                       if pforgroupnode2 != null then
-                                               listnode3.add(pforgroupnode2)
-                                       end
-                                       node_list = listnode3
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tgtnode3 = nodearraylist2
+                                       assert tgtnode3 isa nullable TGt
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
+                                               pexprnode2,
+                                               tgtnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction277
+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 listnode3 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       listnode3 = concat(listnode3, listnode2)
-                                       var tkwinnode4 = nodearraylist3
-                                       assert tkwinnode4 isa nullable TKwin
-                                       var pexprnode5 = nodearraylist5
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pforgroupnode1: nullable AForGroup = new AForGroup.init_aforgroup(
-                                               listnode3,
-                                               tkwinnode4,
-                                               pexprnode5
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tgenode3 = nodearraylist2
+                                       assert tgenode3 isa nullable TGe
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
+                                               pexprnode2,
+                                               tgenode3,
+                                               pexprnode4
                                        )
-                                       node_list = pforgroupnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction278
+private class ReduceAction336
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var plabelnode6 = nodearraylist7
-                                       assert plabelnode6 isa nullable ALabel
-                                       var pexprnode1: nullable AWithExpr = new AWithExpr.init_awithexpr(
-                                               tkwwithnode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode6
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tstarshipnode3 = nodearraylist2
+                                       assert tstarshipnode3 isa nullable TStarship
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
+                                               pexprnode2,
+                                               tstarshipnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction279
+private class ReduceAction337
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AWithExpr = new AWithExpr.init_awithexpr(
-                                               tkwwithnode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwisanode3 = nodearraylist2
+                                       assert tkwisanode3 isa nullable TKwisa
+                                       var ptypenode4 = nodearraylist4
+                                       assert ptypenode4 isa nullable AType
+                                       var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
+                                               pexprnode2,
+                                               tkwisanode3,
+                                               ptypenode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction280
+private class ReduceAction339
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var ptypenode4 = nodearraylist2
-                                       assert ptypenode4 isa nullable AType
-                                       var tassignnode5 = nodearraylist3
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist5
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               null,
-                                               tidnode3,
-                                               ptypenode4,
-                                               tassignnode5,
-                                               pexprnode6,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tpipenode3 = nodearraylist2
+                                       assert tpipenode3 isa nullable TPipe
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable APipeExpr = new APipeExpr.init_apipeexpr(
+                                               pexprnode2,
+                                               tpipenode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction281
+private class ReduceAction341
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var ptypenode4 = nodearraylist3
-                                       assert ptypenode4 isa nullable AType
-                                       var tassignnode5 = nodearraylist4
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist6
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pannotationsnode7 = nodearraylist2
-                                       assert pannotationsnode7 isa nullable AAnnotations
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               null,
-                                               tidnode3,
-                                               ptypenode4,
-                                               tassignnode5,
-                                               pexprnode6,
-                                               pannotationsnode7
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tcaretnode3 = nodearraylist2
+                                       assert tcaretnode3 isa nullable TCaret
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ACaretExpr = new ACaretExpr.init_acaretexpr(
+                                               pexprnode2,
+                                               tcaretnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction283
+private class ReduceAction343
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8352,156 +10415,142 @@ private class ReduceAction283
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwassertnode2 = nodearraylist1
-                                       assert tkwassertnode2 isa nullable TKwassert
-                                       var pexprnode4 = nodearraylist2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tampnode3 = nodearraylist2
+                                       assert tampnode3 isa nullable TAmp
+                                       var pexprnode4 = nodearraylist4
                                        assert pexprnode4 isa nullable AExpr
-                                       var tkwelsenode5 = nodearraylist3
-                                       assert tkwelsenode5 isa nullable TKwelse
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
-                                               null,
-                                               pexprnode4,
-                                               tkwelsenode5,
-                                               pexprnode6
+                                       var pexprnode1: nullable AAmpExpr = new AAmpExpr.init_aampexpr(
+                                               pexprnode2,
+                                               tampnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction284
+private class ReduceAction345
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwassertnode2 = nodearraylist1
-                                       assert tkwassertnode2 isa nullable TKwassert
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist3
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tllnode3 = nodearraylist2
+                                       assert tllnode3 isa nullable TLl
+                                       var pexprnode4 = nodearraylist4
                                        assert pexprnode4 isa nullable AExpr
-                                       var tkwelsenode5 = nodearraylist4
-                                       assert tkwelsenode5 isa nullable TKwelse
-                                       var pexprnode6 = nodearraylist5
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               tkwelsenode5,
-                                               pexprnode6
+                                       var pexprnode1: nullable ALlExpr = new ALlExpr.init_allexpr(
+                                               pexprnode2,
+                                               tllnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction285
+private class ReduceAction346
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwassertnode2 = nodearraylist1
-                                       assert tkwassertnode2 isa nullable TKwassert
-                                       var pexprnode4 = nodearraylist2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tggnode3 = nodearraylist2
+                                       assert tggnode3 isa nullable TGg
+                                       var pexprnode4 = nodearraylist4
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
-                                               null,
-                                               pexprnode4,
-                                               null,
-                                               null
+                                       var pexprnode1: nullable AGgExpr = new AGgExpr.init_aggexpr(
+                                               pexprnode2,
+                                               tggnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction286
+private class ReduceAction348
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwassertnode2 = nodearraylist1
-                                       assert tkwassertnode2 isa nullable TKwassert
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist3
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tplusnode3 = nodearraylist2
+                                       assert tplusnode3 isa nullable TPlus
+                                       var pexprnode4 = nodearraylist4
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               null,
-                                               null
+                                       var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
+                                               pexprnode2,
+                                               tplusnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction287
+private class ReduceAction349
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tidnode1 = nodearraylist1
-                                       node_list = tidnode1
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tminusnode3 = nodearraylist2
+                                       assert tminusnode3 isa nullable TMinus
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
+                                               pexprnode2,
+                                               tminusnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction289
+private class ReduceAction351
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwthennode4 = nodearraylist5
-                                       assert tkwthennode4 isa nullable TKwthen
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable AExpr
-                                       var tkwelsenode6 = nodearraylist9
-                                       assert tkwelsenode6 isa nullable TKwelse
-                                       var pexprnode7 = nodearraylist11
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable AIfexprExpr = new AIfexprExpr.init_aifexprexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               tkwthennode4,
-                                               pexprnode5,
-                                               tkwelsenode6,
-                                               pexprnode7
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tstarnode3 = nodearraylist2
+                                       assert tstarnode3 isa nullable TStar
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
+                                               pexprnode2,
+                                               tstarnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction291
+private class ReduceAction352
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8512,20 +10561,20 @@ private class ReduceAction291
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tkwornode3 = nodearraylist2
-                                       assert tkwornode3 isa nullable TKwor
+                                       var tslashnode3 = nodearraylist2
+                                       assert tslashnode3 isa nullable TSlash
                                        var pexprnode4 = nodearraylist4
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
+                                       var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
                                                pexprnode2,
-                                               tkwornode3,
+                                               tslashnode3,
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction292
+private class ReduceAction353
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8536,48 +10585,121 @@ private class ReduceAction292
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tkwandnode3 = nodearraylist2
-                                       assert tkwandnode3 isa nullable TKwand
+                                       var tpercentnode3 = nodearraylist2
+                                       assert tpercentnode3 isa nullable TPercent
                                        var pexprnode4 = nodearraylist4
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
+                                       var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
                                                pexprnode2,
-                                               tkwandnode3,
+                                               tpercentnode3,
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction293
+private class ReduceAction355
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tkwornode3 = nodearraylist2
-                                       assert tkwornode3 isa nullable TKwor
-                                       var tkwelsenode4 = nodearraylist3
-                                       assert tkwelsenode4 isa nullable TKwelse
-                                       var pexprnode5 = nodearraylist5
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AOrElseExpr = new AOrElseExpr.init_aorelseexpr(
+                                       var tstarstarnode3 = nodearraylist2
+                                       assert tstarstarnode3 isa nullable TStarstar
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AStarstarExpr = new AStarstarExpr.init_astarstarexpr(
                                                pexprnode2,
-                                               tkwornode3,
-                                               tkwelsenode4,
-                                               pexprnode5
+                                               tstarstarnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction357
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tminusnode2 = nodearraylist1
+                                       assert tminusnode2 isa nullable TMinus
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
+                                               tminusnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction358
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tplusnode2 = nodearraylist1
+                                       assert tplusnode2 isa nullable TPlus
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AUplusExpr = new AUplusExpr.init_auplusexpr(
+                                               tplusnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction359
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var ttildenode2 = nodearraylist1
+                                       assert ttildenode2 isa nullable TTilde
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AUtildeExpr = new AUtildeExpr.init_autildeexpr(
+                                               ttildenode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction360
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwoncenode2 = nodearraylist1
+                                       assert tkwoncenode2 isa nullable TKwonce
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
+                                               tkwoncenode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction294
+private class ReduceAction362
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8586,22 +10708,23 @@ private class ReduceAction294
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tkwimpliesnode3 = nodearraylist2
-                                       assert tkwimpliesnode3 isa nullable TKwimplies
-                                       var pexprnode4 = nodearraylist4
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AImpliesExpr = new AImpliesExpr.init_aimpliesexpr(
-                                               pexprnode2,
-                                               tkwimpliesnode3,
-                                               pexprnode4
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var pexprsnode5 = nodearraylist4
+                                       assert pexprsnode5 isa nullable AExprs
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               null,
+                                               pexprsnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction296
+private class ReduceAction363
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8609,532 +10732,910 @@ private class ReduceAction296
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwnotnode2 = nodearraylist1
-                                       assert tkwnotnode2 isa nullable TKwnot
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ANotExpr = new ANotExpr.init_anotexpr(
-                                               tkwnotnode2,
-                                               pexprnode3
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var listnode6 = new Array[Object]
+                                       var pexprsnode5: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode6
+                                       )
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               null,
+                                               pexprsnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction298
+private class ReduceAction364
        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 teqnode3 = nodearraylist2
-                                       assert teqnode3 isa nullable TEq
-                                       var pexprnode4 = nodearraylist4
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
-                                               pexprnode2,
-                                               teqnode3,
-                                               pexprnode4
+                                       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 ReduceAction299
+private class ReduceAction365
        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 tnenode3 = nodearraylist2
-                                       assert tnenode3 isa nullable TNe
-                                       var pexprnode4 = nodearraylist4
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode4 = nodearraylist2
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
-                                               pexprnode2,
-                                               tnenode3,
-                                               pexprnode4
+                                       var tquestnode5 = nodearraylist3
+                                       assert tquestnode5 isa nullable TQuest
+                                       var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode4,
+                                               tquestnode5
+                                       )
+                                       var tattridnode6 = nodearraylist7
+                                       assert tattridnode6 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction300
+private class ReduceAction366
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tltnode3 = nodearraylist2
-                                       assert tltnode3 isa nullable TLt
-                                       var pexprnode4 = nodearraylist4
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
-                                               pexprnode2,
-                                               tltnode3,
-                                               pexprnode4
+                                       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 ReduceAction301
+private class ReduceAction367
        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 tlenode3 = nodearraylist2
-                                       assert tlenode3 isa nullable TLe
-                                       var pexprnode4 = nodearraylist4
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
-                                               pexprnode2,
-                                               tlenode3,
-                                               pexprnode4
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tidnode6 = nodearraylist5
+                                       assert tidnode6 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode6
+                                       )
+                                       var pexprsnode7 = nodearraylist6
+                                       assert pexprsnode7 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction302
+private class ReduceAction368
        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 tgtnode3 = nodearraylist2
-                                       assert tgtnode3 isa nullable TGt
-                                       var pexprnode4 = nodearraylist4
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
-                                               pexprnode2,
-                                               tgtnode3,
-                                               pexprnode4
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tidnode6 = nodearraylist5
+                                       assert tidnode6 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode6
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var pexprsnode7: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode8
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction303
+private class ReduceAction369
        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 tgenode3 = nodearraylist2
-                                       assert tgenode3 isa nullable TGe
-                                       var pexprnode4 = nodearraylist4
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
-                                               pexprnode2,
-                                               tgenode3,
-                                               pexprnode4
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var tclassidnode7 = nodearraylist5
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist7
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction304
+private class ReduceAction370
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tstarshipnode3 = nodearraylist2
-                                       assert tstarshipnode3 isa nullable TStarship
-                                       var pexprnode4 = nodearraylist4
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
-                                               pexprnode2,
-                                               tstarshipnode3,
-                                               pexprnode4
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var tclassidnode7 = nodearraylist5
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction305
+private class ReduceAction371
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tkwisanode3 = nodearraylist2
-                                       assert tkwisanode3 isa nullable TKwisa
-                                       var ptypenode4 = nodearraylist4
-                                       assert ptypenode4 isa nullable AType
-                                       var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
-                                               pexprnode2,
-                                               tkwisanode3,
-                                               ptypenode4
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist5
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var tclassidnode8 = nodearraylist6
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist7
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist8
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction307
+private class ReduceAction372
        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 tpipenode3 = nodearraylist2
-                                       assert tpipenode3 isa nullable TPipe
-                                       var pexprnode4 = nodearraylist4
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable APipeExpr = new APipeExpr.init_apipeexpr(
-                                               pexprnode2,
-                                               tpipenode3,
-                                               pexprnode4
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist5
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var tclassidnode8 = nodearraylist6
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist7
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction309
+private class ReduceAction373
        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 tcaretnode3 = nodearraylist2
-                                       assert tcaretnode3 isa nullable TCaret
-                                       var pexprnode4 = nodearraylist4
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable ACaretExpr = new ACaretExpr.init_acaretexpr(
-                                               pexprnode2,
-                                               tcaretnode3,
-                                               pexprnode4
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist5
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               null
+                                       )
+                                       var tidnode9 = nodearraylist6
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist7
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction311
+private class ReduceAction374
        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 tampnode3 = nodearraylist2
-                                       assert tampnode3 isa nullable TAmp
-                                       var pexprnode4 = nodearraylist4
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AAmpExpr = new AAmpExpr.init_aampexpr(
-                                               pexprnode2,
-                                               tampnode3,
-                                               pexprnode4
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist5
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               null
+                                       )
+                                       var tidnode9 = nodearraylist6
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction313
+private class ReduceAction375
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tllnode3 = nodearraylist2
-                                       assert tllnode3 isa nullable TLl
-                                       var pexprnode4 = nodearraylist4
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode4 = nodearraylist2
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable ALlExpr = new ALlExpr.init_allexpr(
-                                               pexprnode2,
-                                               tllnode3,
-                                               pexprnode4
+                                       var tquestnode5 = nodearraylist3
+                                       assert tquestnode5 isa nullable TQuest
+                                       var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode4,
+                                               tquestnode5
+                                       )
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode6: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist7
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode6,
+                                               pexprsnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction314
+private class ReduceAction376
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tggnode3 = nodearraylist2
-                                       assert tggnode3 isa nullable TGg
-                                       var pexprnode4 = nodearraylist4
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode4 = nodearraylist2
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AGgExpr = new AGgExpr.init_aggexpr(
-                                               pexprnode2,
-                                               tggnode3,
-                                               pexprnode4
+                                       var tquestnode5 = nodearraylist3
+                                       assert tquestnode5 isa nullable TQuest
+                                       var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode4,
+                                               tquestnode5
+                                       )
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode6: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode6,
+                                               pexprsnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction316
+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
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tplusnode3 = nodearraylist2
-                                       assert tplusnode3 isa nullable TPlus
-                                       var pexprnode4 = nodearraylist4
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode4 = nodearraylist2
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
-                                               pexprnode2,
-                                               tplusnode3,
-                                               pexprnode4
+                                       var tquestnode5 = nodearraylist3
+                                       assert tquestnode5 isa nullable TQuest
+                                       var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode4,
+                                               tquestnode5
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var tclassidnode9 = nodearraylist6
+                                       assert tclassidnode9 isa nullable TClassid
+                                       var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               tclassidnode9
+                                       )
+                                       var tidnode10 = nodearraylist7
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode6: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode7,
+                                               tidnode10
+                                       )
+                                       var pexprsnode11 = nodearraylist8
+                                       assert pexprsnode11 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode6,
+                                               pexprsnode11
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction317
+private class ReduceAction378
        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 tminusnode3 = nodearraylist2
-                                       assert tminusnode3 isa nullable TMinus
-                                       var pexprnode4 = nodearraylist4
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode4 = nodearraylist2
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
-                                               pexprnode2,
-                                               tminusnode3,
-                                               pexprnode4
+                                       var tquestnode5 = nodearraylist3
+                                       assert tquestnode5 isa nullable TQuest
+                                       var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode4,
+                                               tquestnode5
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var tclassidnode9 = nodearraylist6
+                                       assert tclassidnode9 isa nullable TClassid
+                                       var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               tclassidnode9
+                                       )
+                                       var tidnode10 = nodearraylist7
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode6: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode7,
+                                               tidnode10
+                                       )
+                                       var listnode12 = new Array[Object]
+                                       var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode12
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode6,
+                                               pexprsnode11
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction319
+private class ReduceAction379
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tstarnode3 = nodearraylist2
-                                       assert tstarnode3 isa nullable TStar
-                                       var pexprnode4 = nodearraylist4
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode4 = nodearraylist2
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
-                                               pexprnode2,
-                                               tstarnode3,
-                                               pexprnode4
+                                       var tquestnode5 = nodearraylist3
+                                       assert tquestnode5 isa nullable TQuest
+                                       var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode4,
+                                               tquestnode5
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tclassidnode10 = nodearraylist7
+                                       assert tclassidnode10 isa nullable TClassid
+                                       var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode9,
+                                               tclassidnode10
+                                       )
+                                       var tidnode11 = nodearraylist8
+                                       assert tidnode11 isa nullable TId
+                                       var pqidnode6: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode7,
+                                               tidnode11
+                                       )
+                                       var pexprsnode12 = nodearraylist9
+                                       assert pexprsnode12 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode6,
+                                               pexprsnode12
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction320
+private class ReduceAction380
        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 tslashnode3 = nodearraylist2
-                                       assert tslashnode3 isa nullable TSlash
-                                       var pexprnode4 = nodearraylist4
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode4 = nodearraylist2
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
-                                               pexprnode2,
-                                               tslashnode3,
-                                               pexprnode4
+                                       var tquestnode5 = nodearraylist3
+                                       assert tquestnode5 isa nullable TQuest
+                                       var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode4,
+                                               tquestnode5
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tclassidnode10 = nodearraylist7
+                                       assert tclassidnode10 isa nullable TClassid
+                                       var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode9,
+                                               tclassidnode10
+                                       )
+                                       var tidnode11 = nodearraylist8
+                                       assert tidnode11 isa nullable TId
+                                       var pqidnode6: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode7,
+                                               tidnode11
+                                       )
+                                       var listnode13 = new Array[Object]
+                                       var pexprsnode12: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode13
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode6,
+                                               pexprsnode12
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction321
+private class ReduceAction381
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tpercentnode3 = nodearraylist2
-                                       assert tpercentnode3 isa nullable TPercent
-                                       var pexprnode4 = nodearraylist4
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode4 = nodearraylist2
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
-                                               pexprnode2,
-                                               tpercentnode3,
-                                               pexprnode4
+                                       var tquestnode5 = nodearraylist3
+                                       assert tquestnode5 isa nullable TQuest
+                                       var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode4,
+                                               tquestnode5
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode9,
+                                               null
+                                       )
+                                       var tidnode11 = nodearraylist7
+                                       assert tidnode11 isa nullable TId
+                                       var pqidnode6: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode7,
+                                               tidnode11
+                                       )
+                                       var pexprsnode12 = nodearraylist8
+                                       assert pexprsnode12 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode6,
+                                               pexprsnode12
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction323
+private class ReduceAction382
        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 tstarstarnode3 = nodearraylist2
-                                       assert tstarstarnode3 isa nullable TStarstar
-                                       var pexprnode4 = nodearraylist4
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode4 = nodearraylist2
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AStarstarExpr = new AStarstarExpr.init_astarstarexpr(
-                                               pexprnode2,
-                                               tstarstarnode3,
-                                               pexprnode4
+                                       var tquestnode5 = nodearraylist3
+                                       assert tquestnode5 isa nullable TQuest
+                                       var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode4,
+                                               tquestnode5
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode9,
+                                               null
+                                       )
+                                       var tidnode11 = nodearraylist7
+                                       assert tidnode11 isa nullable TId
+                                       var pqidnode6: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode7,
+                                               tidnode11
+                                       )
+                                       var listnode13 = new Array[Object]
+                                       var pexprsnode12: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode13
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode6,
+                                               pexprsnode12
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction325
+private class ReduceAction383
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tminusnode2 = nodearraylist1
-                                       assert tminusnode2 isa nullable TMinus
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
-                                               tminusnode2,
-                                               pexprnode3
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode6 = nodearraylist2
+                                       assert tidnode6 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode6
+                                       )
+                                       var pexprsnode7 = nodearraylist3
+                                       assert pexprsnode7 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction326
+private class ReduceAction384
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tplusnode2 = nodearraylist1
-                                       assert tplusnode2 isa nullable TPlus
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AUplusExpr = new AUplusExpr.init_auplusexpr(
-                                               tplusnode2,
-                                               pexprnode3
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode6 = nodearraylist2
+                                       assert tidnode6 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode6
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var pexprsnode7: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode8
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction327
+private class ReduceAction385
        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 ttildenode2 = nodearraylist1
-                                       assert ttildenode2 isa nullable TTilde
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AUtildeExpr = new AUtildeExpr.init_autildeexpr(
-                                               ttildenode2,
-                                               pexprnode3
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist4
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction328
+private class ReduceAction386
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9142,96 +11643,158 @@ private class ReduceAction328
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwoncenode2 = nodearraylist1
-                                       assert tkwoncenode2 isa nullable TKwonce
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
-                                               tkwoncenode2,
-                                               pexprnode3
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction330
+private class ReduceAction387
        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 tkwnewnode2 = nodearraylist1
-                                       assert tkwnewnode2 isa nullable TKwnew
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable AType
-                                       var pexprsnode5 = nodearraylist4
-                                       assert pexprsnode5 isa nullable AExprs
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               null,
-                                               pexprsnode5
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist2
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var tclassidnode8 = nodearraylist3
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist4
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist5
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction331
+private class ReduceAction388
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwnewnode2 = nodearraylist1
-                                       assert tkwnewnode2 isa nullable TKwnew
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable AType
-                                       var listnode6 = new Array[Object]
-                                       var pexprsnode5: nullable AListExprs = new AListExprs.init_alistexprs(
-                                               listnode6
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist2
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var tclassidnode8 = nodearraylist3
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
                                        )
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               null,
-                                               pexprsnode5
+                                       var tidnode9 = nodearraylist4
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction332
+private class ReduceAction389
        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,
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist2
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               null
+                                       )
+                                       var tidnode9 = nodearraylist3
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist4
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
                                                pexprnode3,
-                                               tattridnode4
+                                               pqidnode4,
+                                               pexprsnode10
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction333
+private class ReduceAction390
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9239,21 +11802,38 @@ private class ReduceAction333
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
                                        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,
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist2
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               null
+                                       )
+                                       var tidnode9 = nodearraylist3
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
                                                pexprnode3,
-                                               tattridnode4
+                                               pqidnode4,
+                                               pexprsnode10
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction335
+private class ReduceAction392
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9275,7 +11855,36 @@ private class ReduceAction335
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction336
+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
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tattridnode5 = nodearraylist6
+                                       assert tattridnode5 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction394
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9293,7 +11902,7 @@ private class ReduceAction336
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction338
+private class ReduceAction396
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9323,7 +11932,7 @@ private class ReduceAction338
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction340
+private class ReduceAction398
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9361,7 +11970,7 @@ private class ReduceAction340
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction342
+private class ReduceAction400
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9403,7 +12012,7 @@ private class ReduceAction342
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction344
+private class ReduceAction402
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9429,20 +12038,197 @@ private class ReduceAction344
                                                pqualifiednode4,
                                                tidnode8
                                        )
-                                       var listnode10 = new Array[Object]
-                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
-                                               listnode10
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction404
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode8
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction406
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var tclassidnode8 = nodearraylist5
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist6
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction408
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tclassidnode9 = nodearraylist6
+                                       assert tclassidnode9 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               tclassidnode9
+                                       )
+                                       var tidnode10 = nodearraylist7
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var listnode12 = new Array[Object]
+                                       var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode12
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction410
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               null
+                                       )
+                                       var tidnode10 = nodearraylist6
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var listnode12 = new Array[Object]
+                                       var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode12
                                        )
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               pqidnode3,
-                                               pexprsnode9
+                                               pqidnode5,
+                                               pexprsnode11
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction346
+private class ReduceAction412
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9468,7 +12254,7 @@ private class ReduceAction346
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction348
+private class ReduceAction414
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9502,7 +12288,7 @@ private class ReduceAction348
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction350
+private class ReduceAction416
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9540,7 +12326,7 @@ private class ReduceAction350
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction352
+private class ReduceAction418
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9575,7 +12361,7 @@ private class ReduceAction352
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction354
+private class ReduceAction420
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9599,7 +12385,7 @@ private class ReduceAction354
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction356
+private class ReduceAction422
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9625,7 +12411,40 @@ private class ReduceAction356
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction358
+private class ReduceAction424
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tkwinitnode5 = nodearraylist5
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var listnode7 = new Array[Object]
+                                       var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode7
+                                       )
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode5,
+                                               pexprsnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction426
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9647,7 +12466,7 @@ private class ReduceAction358
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction359
+private class ReduceAction427
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9666,7 +12485,7 @@ private class ReduceAction359
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction360
+private class ReduceAction428
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9700,7 +12519,7 @@ private class ReduceAction360
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction361
+private class ReduceAction429
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9735,7 +12554,7 @@ private class ReduceAction361
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction362
+private class ReduceAction430
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9777,7 +12596,7 @@ private class ReduceAction362
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction363
+private class ReduceAction431
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9820,7 +12639,7 @@ private class ReduceAction363
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction364
+private class ReduceAction432
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9866,7 +12685,7 @@ private class ReduceAction364
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction365
+private class ReduceAction433
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9913,7 +12732,7 @@ private class ReduceAction365
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction366
+private class ReduceAction434
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9956,7 +12775,7 @@ private class ReduceAction366
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction367
+private class ReduceAction435
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10000,7 +12819,7 @@ private class ReduceAction367
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction368
+private class ReduceAction436
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10036,7 +12855,7 @@ private class ReduceAction368
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction369
+private class ReduceAction437
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10077,7 +12896,7 @@ private class ReduceAction369
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction370
+private class ReduceAction438
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10110,7 +12929,7 @@ private class ReduceAction370
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction372
+private class ReduceAction440
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10129,7 +12948,7 @@ private class ReduceAction372
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction373
+private class ReduceAction441
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10152,7 +12971,7 @@ private class ReduceAction373
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction374
+private class ReduceAction442
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10171,7 +12990,7 @@ private class ReduceAction374
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction375
+private class ReduceAction443
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10190,7 +13009,7 @@ private class ReduceAction375
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction376
+private class ReduceAction444
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10209,7 +13028,7 @@ private class ReduceAction376
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction377
+private class ReduceAction445
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10228,7 +13047,7 @@ private class ReduceAction377
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction378
+private class ReduceAction446
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10247,7 +13066,7 @@ private class ReduceAction378
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction379
+private class ReduceAction447
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10266,7 +13085,7 @@ private class ReduceAction379
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction380
+private class ReduceAction448
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10285,7 +13104,7 @@ private class ReduceAction380
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction381
+private class ReduceAction449
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10304,7 +13123,7 @@ private class ReduceAction381
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction384
+private class ReduceAction452
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10343,7 +13162,7 @@ private class ReduceAction384
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction385
+private class ReduceAction453
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10382,7 +13201,7 @@ private class ReduceAction385
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction386
+private class ReduceAction454
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10416,7 +13235,7 @@ private class ReduceAction386
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction387
+private class ReduceAction455
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10445,7 +13264,7 @@ private class ReduceAction387
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction389
+private class ReduceAction457
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10468,7 +13287,7 @@ private class ReduceAction389
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction390
+private class ReduceAction458
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10481,7 +13300,7 @@ private class ReduceAction390
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction391
+private class ReduceAction459
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10496,7 +13315,7 @@ private class ReduceAction391
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction392
+private class ReduceAction460
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10515,7 +13334,7 @@ private class ReduceAction392
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction394
+private class ReduceAction462
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10527,7 +13346,7 @@ private class ReduceAction394
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction396
+private class ReduceAction464
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10559,7 +13378,7 @@ private class ReduceAction396
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction397
+private class ReduceAction465
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10586,7 +13405,7 @@ private class ReduceAction397
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction398
+private class ReduceAction466
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10617,7 +13436,7 @@ private class ReduceAction398
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction399
+private class ReduceAction467
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10639,7 +13458,7 @@ private class ReduceAction399
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction400
+private class ReduceAction468
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10655,7 +13474,7 @@ private class ReduceAction400
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction401
+private class ReduceAction469
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10670,7 +13489,7 @@ private class ReduceAction401
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction404
+private class ReduceAction472
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10685,7 +13504,7 @@ private class ReduceAction404
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction405
+private class ReduceAction473
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10700,7 +13519,7 @@ private class ReduceAction405
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction406
+private class ReduceAction474
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10727,7 +13546,7 @@ private class ReduceAction406
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction407
+private class ReduceAction475
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10760,7 +13579,7 @@ private class ReduceAction407
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction408
+private class ReduceAction476
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10771,7 +13590,7 @@ private class ReduceAction408
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction410
+private class ReduceAction478
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10803,7 +13622,7 @@ private class ReduceAction410
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction411
+private class ReduceAction479
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10847,7 +13666,7 @@ private class ReduceAction411
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction412
+private class ReduceAction480
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10862,7 +13681,7 @@ private class ReduceAction412
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction413
+private class ReduceAction481
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10881,7 +13700,7 @@ private class ReduceAction413
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction416
+private class ReduceAction484
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10916,7 +13735,7 @@ private class ReduceAction416
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction418
+private class ReduceAction486
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10929,7 +13748,7 @@ private class ReduceAction418
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction419
+private class ReduceAction487
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10962,7 +13781,7 @@ private class ReduceAction419
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction420
+private class ReduceAction488
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10998,7 +13817,7 @@ private class ReduceAction420
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction421
+private class ReduceAction489
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11042,7 +13861,7 @@ private class ReduceAction421
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction422
+private class ReduceAction490
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11089,7 +13908,7 @@ private class ReduceAction422
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction423
+private class ReduceAction491
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11126,7 +13945,7 @@ private class ReduceAction423
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction424
+private class ReduceAction492
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11152,7 +13971,7 @@ private class ReduceAction424
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction425
+private class ReduceAction493
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11181,7 +14000,7 @@ private class ReduceAction425
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction426
+private class ReduceAction494
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11218,7 +14037,7 @@ private class ReduceAction426
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction427
+private class ReduceAction495
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11258,7 +14077,7 @@ private class ReduceAction427
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction428
+private class ReduceAction496
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11288,7 +14107,7 @@ private class ReduceAction428
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction432
+private class ReduceAction500
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11303,7 +14122,7 @@ private class ReduceAction432
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction435
+private class ReduceAction503
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11324,7 +14143,35 @@ private class ReduceAction435
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction436
+private class ReduceAction504
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var pmethidnode5 = nodearraylist5
+                                       assert pmethidnode5 isa nullable AMethid
+                                       var pexprnode1: nullable AMethidExpr = new AMethidExpr.init_amethidexpr(
+                                               pexprnode2,
+                                               pmethidnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction505
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11341,7 +14188,7 @@ private class ReduceAction436
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction437
+private class ReduceAction506
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11356,7 +14203,7 @@ private class ReduceAction437
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction438
+private class ReduceAction507
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11371,7 +14218,7 @@ private class ReduceAction438
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction439
+private class ReduceAction508
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11386,7 +14233,7 @@ private class ReduceAction439
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction440
+private class ReduceAction509
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11401,7 +14248,7 @@ private class ReduceAction440
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction441
+private class ReduceAction510
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11427,7 +14274,7 @@ private class ReduceAction441
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction442
+private class ReduceAction511
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11449,7 +14296,7 @@ private class ReduceAction442
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction444
+private class ReduceAction513
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11468,7 +14315,7 @@ private class ReduceAction444
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction446
+private class ReduceAction515
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11481,7 +14328,7 @@ private class ReduceAction446
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction447
+private class ReduceAction516
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11507,7 +14354,7 @@ private class ReduceAction447
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction449
+private class ReduceAction518
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11527,7 +14374,7 @@ private class ReduceAction449
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction450
+private class ReduceAction519
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11541,7 +14388,7 @@ private class ReduceAction450
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction451
+private class ReduceAction520
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11559,7 +14406,7 @@ private class ReduceAction451
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction452
+private class ReduceAction521
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11573,7 +14420,7 @@ private class ReduceAction452
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction453
+private class ReduceAction522
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11588,7 +14435,7 @@ private class ReduceAction453
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction454
+private class ReduceAction523
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11609,7 +14456,7 @@ private class ReduceAction454
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction455
+private class ReduceAction524
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11627,7 +14474,7 @@ private class ReduceAction455
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction456
+private class ReduceAction525
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11649,7 +14496,7 @@ private class ReduceAction456
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction457
+private class ReduceAction526
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11671,7 +14518,7 @@ private class ReduceAction457
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction458
+private class ReduceAction527
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11697,7 +14544,7 @@ private class ReduceAction458
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction459
+private class ReduceAction528
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11714,7 +14561,7 @@ private class ReduceAction459
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction460
+private class ReduceAction529
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11735,7 +14582,7 @@ private class ReduceAction460
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction461
+private class ReduceAction530
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11753,7 +14600,7 @@ private class ReduceAction461
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction463
+private class ReduceAction532
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11769,7 +14616,7 @@ private class ReduceAction463
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction464
+private class ReduceAction533
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11793,7 +14640,7 @@ private class ReduceAction464
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction465
+private class ReduceAction534
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11821,7 +14668,7 @@ private class ReduceAction465
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction466
+private class ReduceAction535
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11846,7 +14693,7 @@ private class ReduceAction466
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction467
+private class ReduceAction536
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11857,7 +14704,7 @@ private class ReduceAction467
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction468
+private class ReduceAction537
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11869,7 +14716,7 @@ private class ReduceAction468
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction469
+private class ReduceAction538
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11882,7 +14729,7 @@ private class ReduceAction469
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction471
+private class ReduceAction540
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11895,7 +14742,7 @@ private class ReduceAction471
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction472
+private class ReduceAction541
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11908,7 +14755,7 @@ private class ReduceAction472
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction474
+private class ReduceAction543
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11919,7 +14766,7 @@ private class ReduceAction474
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction475
+private class ReduceAction544
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11928,7 +14775,7 @@ private class ReduceAction475
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction478
+private class ReduceAction547
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11945,7 +14792,7 @@ private class ReduceAction478
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction479
+private class ReduceAction548
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11963,55 +14810,224 @@ private class ReduceAction479
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction482
+private class ReduceAction551
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       node_list = null
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction553
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       node_list = null
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction554
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode1 = nodearraylist2
+                                       node_list = pdocnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction555
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode1 = nodearraylist3
+                                       node_list = pdocnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction557
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode1 = nodearraylist4
+                                       node_list = pdocnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction559
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode1 = nodearraylist1
+                                       node_list = pdocnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction560
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction563
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction1033
        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
-                                       node_list = null
+                                       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 ReduceAction484
+private class ReduceAction1034
        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
-                                       node_list = null
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tidnode6 = nodearraylist3
+                                       assert tidnode6 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode6
+                                       )
+                                       var pexprsnode7 = nodearraylist4
+                                       assert pexprsnode7 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode7
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction485
+private class ReduceAction1035
        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 pdocnode1 = nodearraylist2
-                                       node_list = pdocnode1
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tidnode6 = nodearraylist3
+                                       assert tidnode6 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode6
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var pexprsnode7: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode8
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode7
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction486
+private class ReduceAction1036
        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 pdocnode1 = nodearraylist3
-                                       node_list = pdocnode1
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var tclassidnode7 = nodearraylist3
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist4
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist5
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction488
+private class ReduceAction1037
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12020,41 +15036,165 @@ private class ReduceAction488
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode1 = nodearraylist4
-                                       node_list = pdocnode1
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var tclassidnode7 = nodearraylist3
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist4
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction490
+private class ReduceAction1038
        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 pdocnode1 = nodearraylist1
-                                       node_list = pdocnode1
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist3
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var tclassidnode8 = nodearraylist4
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist5
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist6
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction491
+private class ReduceAction1039
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist3
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var tclassidnode8 = nodearraylist4
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist5
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction494
+private class ReduceAction1040
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist3
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               null
+                                       )
+                                       var tidnode9 = nodearraylist4
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist5
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction856
+private class ReduceAction1041
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12063,22 +15203,39 @@ private class ReduceAction856
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
                                        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,
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist3
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               null
+                                       )
+                                       var tidnode9 = nodearraylist4
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
                                                pexprnode3,
-                                               tattridnode4
+                                               pqidnode4,
+                                               pexprsnode10
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction858
+private class ReduceAction1043
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12098,7 +15255,7 @@ private class ReduceAction858
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction859
+private class ReduceAction1044
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12125,7 +15282,7 @@ private class ReduceAction859
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction860
+private class ReduceAction1045
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12153,7 +15310,7 @@ private class ReduceAction860
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction861
+private class ReduceAction1046
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12188,7 +15345,7 @@ private class ReduceAction861
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction862
+private class ReduceAction1047
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12224,7 +15381,7 @@ private class ReduceAction862
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction863
+private class ReduceAction1048
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12263,7 +15420,7 @@ private class ReduceAction863
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction864
+private class ReduceAction1049
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12303,7 +15460,7 @@ private class ReduceAction864
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction865
+private class ReduceAction1050
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12339,7 +15496,7 @@ private class ReduceAction865
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction866
+private class ReduceAction1051
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12376,7 +15533,7 @@ private class ReduceAction866
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction869
+private class ReduceAction1054
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12399,7 +15556,7 @@ private class ReduceAction869
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction870
+private class ReduceAction1055
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12423,7 +15580,7 @@ private class ReduceAction870
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction894
+private class ReduceAction1079
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12436,7 +15593,28 @@ private class ReduceAction894
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction895
+private class ReduceAction1080
+       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 tquestnode3 = nodearraylist2
+                                       assert tquestnode3 isa nullable TQuest
+                                       var pexprnode1: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode2,
+                                               tquestnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction1081
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12446,7 +15624,7 @@ private class ReduceAction895
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1063
+private class ReduceAction1265
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12461,7 +15639,7 @@ private class ReduceAction1063
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1064
+private class ReduceAction1266
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12480,7 +15658,7 @@ private class ReduceAction1064
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1065
+private class ReduceAction1267
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12495,7 +15673,7 @@ private class ReduceAction1065
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1066
+private class ReduceAction1268
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12514,7 +15692,7 @@ private class ReduceAction1066
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1067
+private class ReduceAction1269
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12529,7 +15707,7 @@ private class ReduceAction1067
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1068
+private class ReduceAction1270
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12548,7 +15726,7 @@ private class ReduceAction1068
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1070
+private class ReduceAction1272
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12567,7 +15745,7 @@ private class ReduceAction1070
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1072
+private class ReduceAction1274
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12586,7 +15764,7 @@ private class ReduceAction1072
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1074
+private class ReduceAction1276
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12605,7 +15783,7 @@ private class ReduceAction1074
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1075
+private class ReduceAction1277
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12620,7 +15798,7 @@ private class ReduceAction1075
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1076
+private class ReduceAction1278
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12639,7 +15817,7 @@ private class ReduceAction1076
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1077
+private class ReduceAction1279
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12654,7 +15832,7 @@ private class ReduceAction1077
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1078
+private class ReduceAction1280
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12673,7 +15851,7 @@ private class ReduceAction1078
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1080
+private class ReduceAction1282
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12692,7 +15870,7 @@ private class ReduceAction1080
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1082
+private class ReduceAction1284
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12711,7 +15889,7 @@ private class ReduceAction1082
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1088
+private class ReduceAction1290
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12729,7 +15907,7 @@ private class ReduceAction1088
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1096
+private class ReduceAction1298
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12748,7 +15926,7 @@ private class ReduceAction1096
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1097
+private class ReduceAction1299
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12763,7 +15941,7 @@ private class ReduceAction1097
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1098
+private class ReduceAction1300
        super ReduceAction
        redef fun action(p: Parser)
        do