Merge: Safe call operator
[nit.git] / src / parser / parser.nit
index bfa38a3..65a717e 100644 (file)
@@ -9,7 +9,7 @@ private import tables
 redef class Parser
        redef fun build_reduce_table
        do
-               var reduce_table = new Array[ReduceAction].with_capacity(1116)
+               var reduce_table = new Array[ReduceAction].with_capacity(1223)
                reduce_table.add new ReduceAction0(0)
                reduce_table.add new ReduceAction1(0)
                reduce_table.add new ReduceAction2(0)
@@ -213,25 +213,25 @@ redef class Parser
                reduce_table.add new ReduceAction200(45)
                reduce_table.add new ReduceAction201(45)
                reduce_table.add new ReduceAction202(45)
-               reduce_table.add new ReduceAction201(45)
+               reduce_table.add new ReduceAction203(45)
                reduce_table.add new ReduceAction204(45)
                reduce_table.add new ReduceAction205(45)
-               reduce_table.add new ReduceAction204(45)
+               reduce_table.add new ReduceAction206(45)
                reduce_table.add new ReduceAction207(45)
-               reduce_table.add new ReduceAction208(46)
-               reduce_table.add new ReduceAction209(46)
-               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(48)
-               reduce_table.add new ReduceAction215(48)
-               reduce_table.add new ReduceAction216(48)
-               reduce_table.add new ReduceAction217(48)
-               reduce_table.add new ReduceAction218(48)
-               reduce_table.add new ReduceAction219(48)
-               reduce_table.add new ReduceAction220(48)
-               reduce_table.add new ReduceAction221(48)
+               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(48)
                reduce_table.add new ReduceAction223(48)
                reduce_table.add new ReduceAction224(48)
@@ -262,255 +262,294 @@ redef class Parser
                reduce_table.add new ReduceAction249(48)
                reduce_table.add new ReduceAction250(48)
                reduce_table.add new ReduceAction251(48)
-               reduce_table.add new ReduceAction252(49)
-               reduce_table.add new ReduceAction253(49)
-               reduce_table.add new ReduceAction254(49)
-               reduce_table.add new ReduceAction255(49)
-               reduce_table.add new ReduceAction256(49)
-               reduce_table.add new ReduceAction257(49)
-               reduce_table.add new ReduceAction258(49)
-               reduce_table.add new ReduceAction259(49)
-               reduce_table.add new ReduceAction260(49)
-               reduce_table.add new ReduceAction261(49)
-               reduce_table.add new ReduceAction262(49)
-               reduce_table.add new ReduceAction263(50)
-               reduce_table.add new ReduceAction264(50)
-               reduce_table.add new ReduceAction265(50)
-               reduce_table.add new ReduceAction266(51)
-               reduce_table.add new ReduceAction267(51)
-               reduce_table.add new ReduceAction268(51)
-               reduce_table.add new ReduceAction269(51)
-               reduce_table.add new ReduceAction270(51)
-               reduce_table.add new ReduceAction271(51)
-               reduce_table.add new ReduceAction272(51)
-               reduce_table.add new ReduceAction273(51)
+               reduce_table.add new ReduceAction252(48)
+               reduce_table.add new ReduceAction253(48)
+               reduce_table.add new ReduceAction254(48)
+               reduce_table.add new ReduceAction255(48)
+               reduce_table.add new ReduceAction256(48)
+               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 ReduceAction275(53)
-               reduce_table.add new ReduceAction276(53)
-               reduce_table.add new ReduceAction277(54)
-               reduce_table.add new ReduceAction278(54)
-               reduce_table.add new ReduceAction279(55)
-               reduce_table.add new ReduceAction280(55)
-               reduce_table.add new ReduceAction281(56)
-               reduce_table.add new ReduceAction282(56)
-               reduce_table.add new ReduceAction283(57)
-               reduce_table.add new ReduceAction284(58)
-               reduce_table.add new ReduceAction285(58)
-               reduce_table.add new ReduceAction286(59)
-               reduce_table.add new ReduceAction287(59)
+               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 ReduceAction289(60)
-               reduce_table.add new ReduceAction290(60)
-               reduce_table.add new ReduceAction291(60)
-               reduce_table.add new ReduceAction292(60)
-               reduce_table.add new ReduceAction293(61)
+               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 ReduceAction295(62)
+               reduce_table.add new ReduceAction321(62)
                reduce_table.add new ReduceAction165(63)
-               reduce_table.add new ReduceAction297(63)
-               reduce_table.add new ReduceAction298(63)
-               reduce_table.add new ReduceAction299(63)
-               reduce_table.add new ReduceAction300(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 ReduceAction302(64)
+               reduce_table.add new ReduceAction328(64)
                reduce_table.add new ReduceAction165(65)
-               reduce_table.add new ReduceAction304(65)
-               reduce_table.add new ReduceAction305(65)
-               reduce_table.add new ReduceAction306(65)
-               reduce_table.add new ReduceAction307(65)
-               reduce_table.add new ReduceAction308(65)
-               reduce_table.add new ReduceAction309(65)
-               reduce_table.add new ReduceAction310(65)
-               reduce_table.add new ReduceAction311(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 ReduceAction313(66)
+               reduce_table.add new ReduceAction339(66)
                reduce_table.add new ReduceAction165(67)
-               reduce_table.add new ReduceAction315(67)
+               reduce_table.add new ReduceAction341(67)
                reduce_table.add new ReduceAction165(68)
-               reduce_table.add new ReduceAction317(68)
+               reduce_table.add new ReduceAction343(68)
                reduce_table.add new ReduceAction165(69)
-               reduce_table.add new ReduceAction319(69)
-               reduce_table.add new ReduceAction320(69)
+               reduce_table.add new ReduceAction345(69)
+               reduce_table.add new ReduceAction346(69)
                reduce_table.add new ReduceAction165(70)
-               reduce_table.add new ReduceAction322(70)
-               reduce_table.add new ReduceAction323(70)
+               reduce_table.add new ReduceAction348(70)
+               reduce_table.add new ReduceAction349(70)
                reduce_table.add new ReduceAction165(71)
-               reduce_table.add new ReduceAction325(71)
-               reduce_table.add new ReduceAction326(71)
-               reduce_table.add new ReduceAction327(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 ReduceAction329(72)
+               reduce_table.add new ReduceAction355(72)
                reduce_table.add new ReduceAction165(73)
-               reduce_table.add new ReduceAction331(73)
-               reduce_table.add new ReduceAction332(73)
-               reduce_table.add new ReduceAction333(73)
-               reduce_table.add new ReduceAction334(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 ReduceAction336(74)
-               reduce_table.add new ReduceAction337(74)
-               reduce_table.add new ReduceAction338(74)
-               reduce_table.add new ReduceAction339(74)
+               reduce_table.add new ReduceAction362(74)
+               reduce_table.add new ReduceAction363(74)
+               reduce_table.add new ReduceAction364(74)
+               reduce_table.add new ReduceAction365(74)
+               reduce_table.add new ReduceAction366(74)
                reduce_table.add new ReduceAction165(75)
-               reduce_table.add new ReduceAction341(75)
-               reduce_table.add new ReduceAction342(75)
+               reduce_table.add new ReduceAction368(75)
+               reduce_table.add new ReduceAction369(75)
+               reduce_table.add new ReduceAction370(75)
                reduce_table.add new ReduceAction190(75)
-               reduce_table.add new ReduceAction344(75)
+               reduce_table.add new ReduceAction372(75)
                reduce_table.add new ReduceAction191(75)
-               reduce_table.add new ReduceAction346(75)
+               reduce_table.add new ReduceAction374(75)
                reduce_table.add new ReduceAction192(75)
-               reduce_table.add new ReduceAction348(75)
+               reduce_table.add new ReduceAction376(75)
                reduce_table.add new ReduceAction193(75)
-               reduce_table.add new ReduceAction350(75)
+               reduce_table.add new ReduceAction378(75)
                reduce_table.add new ReduceAction194(75)
-               reduce_table.add new ReduceAction352(75)
+               reduce_table.add new ReduceAction380(75)
                reduce_table.add new ReduceAction195(75)
-               reduce_table.add new ReduceAction354(75)
+               reduce_table.add new ReduceAction382(75)
                reduce_table.add new ReduceAction196(75)
-               reduce_table.add new ReduceAction356(75)
+               reduce_table.add new ReduceAction384(75)
                reduce_table.add new ReduceAction197(75)
-               reduce_table.add new ReduceAction358(75)
+               reduce_table.add new ReduceAction386(75)
                reduce_table.add new ReduceAction198(75)
-               reduce_table.add new ReduceAction360(75)
+               reduce_table.add new ReduceAction388(75)
                reduce_table.add new ReduceAction199(75)
-               reduce_table.add new ReduceAction362(75)
+               reduce_table.add new ReduceAction390(75)
                reduce_table.add new ReduceAction200(75)
-               reduce_table.add new ReduceAction364(75)
-               reduce_table.add new ReduceAction365(75)
-               reduce_table.add new ReduceAction366(75)
-               reduce_table.add new ReduceAction367(75)
-               reduce_table.add new ReduceAction368(75)
-               reduce_table.add new ReduceAction369(75)
-               reduce_table.add new ReduceAction370(75)
-               reduce_table.add new ReduceAction371(75)
-               reduce_table.add new ReduceAction372(75)
-               reduce_table.add new ReduceAction373(75)
-               reduce_table.add new ReduceAction374(75)
-               reduce_table.add new ReduceAction375(75)
-               reduce_table.add new ReduceAction376(75)
+               reduce_table.add new ReduceAction392(75)
+               reduce_table.add new ReduceAction201(75)
+               reduce_table.add new ReduceAction394(75)
+               reduce_table.add new ReduceAction202(75)
+               reduce_table.add new ReduceAction396(75)
+               reduce_table.add new ReduceAction203(75)
+               reduce_table.add new ReduceAction398(75)
+               reduce_table.add new ReduceAction204(75)
+               reduce_table.add new ReduceAction400(75)
+               reduce_table.add new ReduceAction205(75)
+               reduce_table.add new ReduceAction402(75)
+               reduce_table.add new ReduceAction403(75)
+               reduce_table.add new ReduceAction404(75)
+               reduce_table.add new ReduceAction405(75)
+               reduce_table.add new ReduceAction406(75)
+               reduce_table.add new ReduceAction407(75)
+               reduce_table.add new ReduceAction408(75)
+               reduce_table.add new ReduceAction409(75)
+               reduce_table.add new ReduceAction410(75)
+               reduce_table.add new ReduceAction411(75)
+               reduce_table.add new ReduceAction412(75)
+               reduce_table.add new ReduceAction413(75)
+               reduce_table.add new ReduceAction414(75)
                reduce_table.add new ReduceAction165(76)
-               reduce_table.add new ReduceAction378(76)
-               reduce_table.add new ReduceAction379(76)
-               reduce_table.add new ReduceAction380(77)
-               reduce_table.add new ReduceAction381(77)
-               reduce_table.add new ReduceAction382(77)
-               reduce_table.add new ReduceAction383(77)
-               reduce_table.add new ReduceAction384(77)
-               reduce_table.add new ReduceAction385(77)
-               reduce_table.add new ReduceAction386(77)
-               reduce_table.add new ReduceAction387(77)
+               reduce_table.add new ReduceAction416(76)
+               reduce_table.add new ReduceAction417(76)
+               reduce_table.add new ReduceAction418(77)
+               reduce_table.add new ReduceAction419(77)
+               reduce_table.add new ReduceAction420(77)
+               reduce_table.add new ReduceAction421(77)
+               reduce_table.add new ReduceAction422(77)
+               reduce_table.add new ReduceAction423(77)
+               reduce_table.add new ReduceAction424(77)
+               reduce_table.add new ReduceAction425(77)
                reduce_table.add new ReduceAction165(77)
                reduce_table.add new ReduceAction165(77)
-               reduce_table.add new ReduceAction390(77)
-               reduce_table.add new ReduceAction391(77)
-               reduce_table.add new ReduceAction392(77)
-               reduce_table.add new ReduceAction393(78)
-               reduce_table.add new ReduceAction393(78)
-               reduce_table.add new ReduceAction395(79)
-               reduce_table.add new ReduceAction396(80)
-               reduce_table.add new ReduceAction397(81)
-               reduce_table.add new ReduceAction398(81)
-               reduce_table.add new ReduceAction396(82)
-               reduce_table.add new ReduceAction400(83)
-               reduce_table.add new ReduceAction280(83)
-               reduce_table.add new ReduceAction402(83)
-               reduce_table.add new ReduceAction403(84)
-               reduce_table.add new ReduceAction404(84)
-               reduce_table.add new ReduceAction405(85)
-               reduce_table.add new ReduceAction406(85)
-               reduce_table.add new ReduceAction407(86)
-               reduce_table.add new ReduceAction405(87)
-               reduce_table.add new ReduceAction406(87)
-               reduce_table.add new ReduceAction410(88)
-               reduce_table.add new ReduceAction411(89)
-               reduce_table.add new ReduceAction412(90)
-               reduce_table.add new ReduceAction413(90)
-               reduce_table.add new ReduceAction414(91)
+               reduce_table.add new ReduceAction428(77)
+               reduce_table.add new ReduceAction429(77)
+               reduce_table.add new ReduceAction430(77)
+               reduce_table.add new ReduceAction431(78)
+               reduce_table.add new ReduceAction431(78)
+               reduce_table.add new ReduceAction433(79)
+               reduce_table.add new ReduceAction434(80)
+               reduce_table.add new ReduceAction435(81)
+               reduce_table.add new ReduceAction436(81)
+               reduce_table.add new ReduceAction434(82)
+               reduce_table.add new ReduceAction438(83)
+               reduce_table.add new ReduceAction306(83)
+               reduce_table.add new ReduceAction440(83)
+               reduce_table.add new ReduceAction441(84)
+               reduce_table.add new ReduceAction442(84)
+               reduce_table.add new ReduceAction443(85)
+               reduce_table.add new ReduceAction444(85)
+               reduce_table.add new ReduceAction445(86)
+               reduce_table.add new ReduceAction443(87)
+               reduce_table.add new ReduceAction444(87)
+               reduce_table.add new ReduceAction448(88)
+               reduce_table.add new ReduceAction449(89)
+               reduce_table.add new ReduceAction450(90)
+               reduce_table.add new ReduceAction451(90)
+               reduce_table.add new ReduceAction452(91)
                reduce_table.add new ReduceAction22(91)
-               reduce_table.add new ReduceAction416(92)
-               reduce_table.add new ReduceAction417(92)
-               reduce_table.add new ReduceAction418(93)
-               reduce_table.add new ReduceAction419(93)
-               reduce_table.add new ReduceAction416(94)
-               reduce_table.add new ReduceAction417(94)
-               reduce_table.add new ReduceAction422(94)
+               reduce_table.add new ReduceAction454(92)
+               reduce_table.add new ReduceAction455(92)
+               reduce_table.add new ReduceAction456(93)
+               reduce_table.add new ReduceAction457(93)
+               reduce_table.add new ReduceAction454(94)
+               reduce_table.add new ReduceAction455(94)
+               reduce_table.add new ReduceAction460(94)
                reduce_table.add new ReduceAction165(95)
-               reduce_table.add new ReduceAction424(96)
-               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 ReduceAction429(97)
-               reduce_table.add new ReduceAction430(98)
-               reduce_table.add new ReduceAction431(98)
-               reduce_table.add new ReduceAction432(98)
-               reduce_table.add new ReduceAction433(98)
-               reduce_table.add new ReduceAction434(98)
-               reduce_table.add new ReduceAction397(99)
-               reduce_table.add new ReduceAction398(99)
-               reduce_table.add new ReduceAction396(100)
-               reduce_table.add new ReduceAction438(101)
+               reduce_table.add new ReduceAction462(96)
+               reduce_table.add new ReduceAction463(97)
+               reduce_table.add new ReduceAction464(97)
+               reduce_table.add new ReduceAction465(97)
+               reduce_table.add new ReduceAction466(97)
+               reduce_table.add new ReduceAction467(97)
+               reduce_table.add new ReduceAction468(98)
+               reduce_table.add new ReduceAction469(98)
+               reduce_table.add new ReduceAction470(98)
+               reduce_table.add new ReduceAction471(98)
+               reduce_table.add new ReduceAction472(98)
+               reduce_table.add new ReduceAction435(99)
+               reduce_table.add new ReduceAction436(99)
+               reduce_table.add new ReduceAction434(100)
+               reduce_table.add new ReduceAction476(101)
                reduce_table.add new ReduceAction165(101)
                reduce_table.add new ReduceAction165(101)
-               reduce_table.add new ReduceAction441(101)
-               reduce_table.add new ReduceAction442(101)
-               reduce_table.add new ReduceAction443(101)
-               reduce_table.add new ReduceAction444(102)
-               reduce_table.add new ReduceAction445(102)
-               reduce_table.add new ReduceAction446(102)
-               reduce_table.add new ReduceAction447(103)
-               reduce_table.add new ReduceAction448(103)
-               reduce_table.add new ReduceAction447(104)
-               reduce_table.add new ReduceAction450(104)
-               reduce_table.add new ReduceAction448(104)
-               reduce_table.add new ReduceAction452(104)
-               reduce_table.add new ReduceAction453(105)
-               reduce_table.add new ReduceAction406(106)
-               reduce_table.add new ReduceAction455(106)
-               reduce_table.add new ReduceAction456(107)
-               reduce_table.add new ReduceAction457(108)
-               reduce_table.add new ReduceAction458(108)
-               reduce_table.add new ReduceAction459(109)
-               reduce_table.add new ReduceAction460(109)
-               reduce_table.add new ReduceAction461(110)
-               reduce_table.add new ReduceAction462(110)
-               reduce_table.add new ReduceAction463(110)
-               reduce_table.add new ReduceAction464(110)
-               reduce_table.add new ReduceAction465(111)
-               reduce_table.add new ReduceAction466(111)
-               reduce_table.add new ReduceAction467(111)
+               reduce_table.add new ReduceAction479(101)
+               reduce_table.add new ReduceAction480(101)
+               reduce_table.add new ReduceAction481(101)
+               reduce_table.add new ReduceAction482(101)
+               reduce_table.add new ReduceAction483(102)
+               reduce_table.add new ReduceAction484(102)
+               reduce_table.add new ReduceAction485(102)
+               reduce_table.add new ReduceAction486(103)
+               reduce_table.add new ReduceAction487(103)
+               reduce_table.add new ReduceAction486(104)
+               reduce_table.add new ReduceAction489(104)
+               reduce_table.add new ReduceAction487(104)
+               reduce_table.add new ReduceAction491(104)
+               reduce_table.add new ReduceAction492(105)
+               reduce_table.add new ReduceAction444(106)
+               reduce_table.add new ReduceAction494(106)
+               reduce_table.add new ReduceAction495(107)
+               reduce_table.add new ReduceAction496(108)
+               reduce_table.add new ReduceAction497(108)
+               reduce_table.add new ReduceAction498(109)
+               reduce_table.add new ReduceAction499(109)
+               reduce_table.add new ReduceAction500(110)
+               reduce_table.add new ReduceAction501(110)
+               reduce_table.add new ReduceAction502(110)
+               reduce_table.add new ReduceAction503(110)
+               reduce_table.add new ReduceAction504(111)
+               reduce_table.add new ReduceAction505(111)
+               reduce_table.add new ReduceAction506(111)
                reduce_table.add new ReduceAction22(111)
-               reduce_table.add new ReduceAction469(112)
-               reduce_table.add new ReduceAction470(112)
-               reduce_table.add new ReduceAction471(112)
-               reduce_table.add new ReduceAction472(112)
-               reduce_table.add new ReduceAction473(113)
-               reduce_table.add new ReduceAction474(113)
-               reduce_table.add new ReduceAction475(113)
-               reduce_table.add new ReduceAction474(113)
-               reduce_table.add new ReduceAction477(114)
-               reduce_table.add new ReduceAction478(115)
+               reduce_table.add new ReduceAction508(112)
+               reduce_table.add new ReduceAction509(112)
+               reduce_table.add new ReduceAction510(112)
+               reduce_table.add new ReduceAction511(112)
+               reduce_table.add new ReduceAction512(113)
+               reduce_table.add new ReduceAction513(113)
+               reduce_table.add new ReduceAction514(113)
+               reduce_table.add new ReduceAction513(113)
+               reduce_table.add new ReduceAction516(114)
+               reduce_table.add new ReduceAction517(115)
                reduce_table.add new ReduceAction22(116)
-               reduce_table.add new ReduceAction480(116)
-               reduce_table.add new ReduceAction481(117)
-               reduce_table.add new ReduceAction481(117)
-               reduce_table.add new ReduceAction481(117)
-               reduce_table.add new ReduceAction484(118)
-               reduce_table.add new ReduceAction485(118)
+               reduce_table.add new ReduceAction519(116)
+               reduce_table.add new ReduceAction520(117)
+               reduce_table.add new ReduceAction520(117)
+               reduce_table.add new ReduceAction520(117)
+               reduce_table.add new ReduceAction523(118)
+               reduce_table.add new ReduceAction524(118)
                reduce_table.add new ReduceAction23(118)
                reduce_table.add new ReduceAction23(118)
-               reduce_table.add new ReduceAction488(118)
-               reduce_table.add new ReduceAction488(118)
-               reduce_table.add new ReduceAction490(118)
-               reduce_table.add new ReduceAction491(118)
-               reduce_table.add new ReduceAction492(118)
-               reduce_table.add new ReduceAction492(118)
-               reduce_table.add new ReduceAction494(118)
+               reduce_table.add new ReduceAction527(118)
+               reduce_table.add new ReduceAction527(118)
+               reduce_table.add new ReduceAction529(118)
+               reduce_table.add new ReduceAction530(118)
+               reduce_table.add new ReduceAction531(118)
+               reduce_table.add new ReduceAction531(118)
+               reduce_table.add new ReduceAction533(118)
                reduce_table.add new ReduceAction22(119)
-               reduce_table.add new ReduceAction496(119)
-               reduce_table.add new ReduceAction497(120)
-               reduce_table.add new ReduceAction481(120)
-               reduce_table.add new ReduceAction481(121)
-               reduce_table.add new ReduceAction500(121)
+               reduce_table.add new ReduceAction535(119)
+               reduce_table.add new ReduceAction536(120)
+               reduce_table.add new ReduceAction520(120)
+               reduce_table.add new ReduceAction520(121)
+               reduce_table.add new ReduceAction539(121)
                reduce_table.add new ReduceAction49(122)
                reduce_table.add new ReduceAction50(122)
                reduce_table.add new ReduceAction51(122)
@@ -540,108 +579,120 @@ redef class Parser
                reduce_table.add new ReduceAction108(124)
                reduce_table.add new ReduceAction109(124)
                reduce_table.add new ReduceAction110(124)
-               reduce_table.add new ReduceAction473(125)
-               reduce_table.add new ReduceAction474(125)
-               reduce_table.add new ReduceAction475(125)
-               reduce_table.add new ReduceAction474(125)
+               reduce_table.add new ReduceAction512(125)
+               reduce_table.add new ReduceAction513(125)
+               reduce_table.add new ReduceAction514(125)
+               reduce_table.add new ReduceAction513(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 ReduceAction295(128)
+               reduce_table.add new ReduceAction321(128)
                reduce_table.add new ReduceAction165(129)
-               reduce_table.add new ReduceAction297(129)
-               reduce_table.add new ReduceAction298(129)
-               reduce_table.add new ReduceAction299(129)
-               reduce_table.add new ReduceAction300(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 ReduceAction302(130)
+               reduce_table.add new ReduceAction328(130)
                reduce_table.add new ReduceAction165(131)
-               reduce_table.add new ReduceAction304(131)
-               reduce_table.add new ReduceAction305(131)
-               reduce_table.add new ReduceAction306(131)
-               reduce_table.add new ReduceAction307(131)
-               reduce_table.add new ReduceAction308(131)
-               reduce_table.add new ReduceAction309(131)
-               reduce_table.add new ReduceAction310(131)
-               reduce_table.add new ReduceAction311(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 ReduceAction313(132)
+               reduce_table.add new ReduceAction339(132)
                reduce_table.add new ReduceAction165(133)
-               reduce_table.add new ReduceAction315(133)
+               reduce_table.add new ReduceAction341(133)
                reduce_table.add new ReduceAction165(134)
-               reduce_table.add new ReduceAction317(134)
+               reduce_table.add new ReduceAction343(134)
                reduce_table.add new ReduceAction165(135)
-               reduce_table.add new ReduceAction319(135)
-               reduce_table.add new ReduceAction320(135)
+               reduce_table.add new ReduceAction345(135)
+               reduce_table.add new ReduceAction346(135)
                reduce_table.add new ReduceAction165(136)
-               reduce_table.add new ReduceAction322(136)
-               reduce_table.add new ReduceAction323(136)
+               reduce_table.add new ReduceAction348(136)
+               reduce_table.add new ReduceAction349(136)
                reduce_table.add new ReduceAction165(137)
-               reduce_table.add new ReduceAction325(137)
-               reduce_table.add new ReduceAction326(137)
-               reduce_table.add new ReduceAction327(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 ReduceAction329(138)
+               reduce_table.add new ReduceAction355(138)
                reduce_table.add new ReduceAction165(139)
-               reduce_table.add new ReduceAction331(139)
-               reduce_table.add new ReduceAction332(139)
-               reduce_table.add new ReduceAction333(139)
-               reduce_table.add new ReduceAction334(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 ReduceAction165(140)
-               reduce_table.add new ReduceAction336(140)
-               reduce_table.add new ReduceAction337(140)
-               reduce_table.add new ReduceAction338(140)
-               reduce_table.add new ReduceAction339(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 ReduceAction165(141)
-               reduce_table.add new ReduceAction341(141)
-               reduce_table.add new ReduceAction342(141)
+               reduce_table.add new ReduceAction368(141)
+               reduce_table.add new ReduceAction369(141)
+               reduce_table.add new ReduceAction370(141)
                reduce_table.add new ReduceAction190(141)
                reduce_table.add new ReduceAction194(141)
-               reduce_table.add new ReduceAction344(141)
-               reduce_table.add new ReduceAction352(141)
+               reduce_table.add new ReduceAction198(141)
+               reduce_table.add new ReduceAction372(141)
+               reduce_table.add new ReduceAction380(141)
+               reduce_table.add new ReduceAction388(141)
                reduce_table.add new ReduceAction191(141)
                reduce_table.add new ReduceAction195(141)
-               reduce_table.add new ReduceAction346(141)
-               reduce_table.add new ReduceAction354(141)
+               reduce_table.add new ReduceAction199(141)
+               reduce_table.add new ReduceAction374(141)
+               reduce_table.add new ReduceAction382(141)
+               reduce_table.add new ReduceAction390(141)
                reduce_table.add new ReduceAction192(141)
                reduce_table.add new ReduceAction196(141)
-               reduce_table.add new ReduceAction348(141)
-               reduce_table.add new ReduceAction356(141)
-               reduce_table.add new ReduceAction193(141)
-               reduce_table.add new ReduceAction197(141)
-               reduce_table.add new ReduceAction350(141)
-               reduce_table.add new ReduceAction358(141)
-               reduce_table.add new ReduceAction198(141)
-               reduce_table.add new ReduceAction360(141)
-               reduce_table.add new ReduceAction199(141)
                reduce_table.add new ReduceAction200(141)
-               reduce_table.add new ReduceAction362(141)
-               reduce_table.add new ReduceAction364(141)
-               reduce_table.add new ReduceAction366(141)
-               reduce_table.add new ReduceAction367(141)
-               reduce_table.add new ReduceAction368(141)
-               reduce_table.add new ReduceAction369(141)
-               reduce_table.add new ReduceAction370(141)
-               reduce_table.add new ReduceAction371(141)
-               reduce_table.add new ReduceAction372(141)
-               reduce_table.add new ReduceAction373(141)
-               reduce_table.add new ReduceAction374(141)
-               reduce_table.add new ReduceAction375(141)
                reduce_table.add new ReduceAction376(141)
+               reduce_table.add new ReduceAction384(141)
+               reduce_table.add new ReduceAction392(141)
+               reduce_table.add new ReduceAction193(141)
+               reduce_table.add new ReduceAction197(141)
+               reduce_table.add new ReduceAction201(141)
+               reduce_table.add new ReduceAction378(141)
+               reduce_table.add new ReduceAction386(141)
+               reduce_table.add new ReduceAction394(141)
+               reduce_table.add new ReduceAction202(141)
+               reduce_table.add new ReduceAction396(141)
+               reduce_table.add new ReduceAction203(141)
+               reduce_table.add new ReduceAction204(141)
+               reduce_table.add new ReduceAction205(141)
+               reduce_table.add new ReduceAction398(141)
+               reduce_table.add new ReduceAction400(141)
+               reduce_table.add new ReduceAction402(141)
+               reduce_table.add new ReduceAction404(141)
+               reduce_table.add new ReduceAction405(141)
+               reduce_table.add new ReduceAction406(141)
+               reduce_table.add new ReduceAction407(141)
+               reduce_table.add new ReduceAction408(141)
+               reduce_table.add new ReduceAction409(141)
+               reduce_table.add new ReduceAction410(141)
+               reduce_table.add new ReduceAction411(141)
+               reduce_table.add new ReduceAction412(141)
+               reduce_table.add new ReduceAction413(141)
+               reduce_table.add new ReduceAction414(141)
                reduce_table.add new ReduceAction165(142)
-               reduce_table.add new ReduceAction378(142)
-               reduce_table.add new ReduceAction379(142)
-               reduce_table.add new ReduceAction380(143)
-               reduce_table.add new ReduceAction381(143)
-               reduce_table.add new ReduceAction382(143)
-               reduce_table.add new ReduceAction383(143)
-               reduce_table.add new ReduceAction384(143)
-               reduce_table.add new ReduceAction385(143)
-               reduce_table.add new ReduceAction386(143)
-               reduce_table.add new ReduceAction387(143)
+               reduce_table.add new ReduceAction416(142)
+               reduce_table.add new ReduceAction417(142)
+               reduce_table.add new ReduceAction418(143)
+               reduce_table.add new ReduceAction419(143)
+               reduce_table.add new ReduceAction420(143)
+               reduce_table.add new ReduceAction421(143)
+               reduce_table.add new ReduceAction422(143)
+               reduce_table.add new ReduceAction423(143)
+               reduce_table.add new ReduceAction424(143)
+               reduce_table.add new ReduceAction425(143)
                reduce_table.add new ReduceAction165(143)
                reduce_table.add new ReduceAction165(143)
                reduce_table.add new ReduceAction149(144)
@@ -681,19 +732,19 @@ redef class Parser
                reduce_table.add new ReduceAction200(146)
                reduce_table.add new ReduceAction201(146)
                reduce_table.add new ReduceAction202(146)
-               reduce_table.add new ReduceAction201(146)
+               reduce_table.add new ReduceAction203(146)
                reduce_table.add new ReduceAction204(146)
                reduce_table.add new ReduceAction205(146)
-               reduce_table.add new ReduceAction204(146)
+               reduce_table.add new ReduceAction206(146)
                reduce_table.add new ReduceAction207(146)
-               reduce_table.add new ReduceAction214(147)
-               reduce_table.add new ReduceAction215(147)
-               reduce_table.add new ReduceAction216(147)
-               reduce_table.add new ReduceAction217(147)
-               reduce_table.add new ReduceAction218(147)
-               reduce_table.add new ReduceAction219(147)
-               reduce_table.add new ReduceAction220(147)
-               reduce_table.add new ReduceAction221(147)
+               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)
@@ -724,203 +775,243 @@ redef class Parser
                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 ReduceAction295(148)
+               reduce_table.add new ReduceAction321(148)
                reduce_table.add new ReduceAction165(149)
-               reduce_table.add new ReduceAction297(149)
-               reduce_table.add new ReduceAction298(149)
-               reduce_table.add new ReduceAction299(149)
-               reduce_table.add new ReduceAction300(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 ReduceAction302(150)
+               reduce_table.add new ReduceAction328(150)
                reduce_table.add new ReduceAction165(151)
-               reduce_table.add new ReduceAction304(151)
-               reduce_table.add new ReduceAction305(151)
-               reduce_table.add new ReduceAction306(151)
-               reduce_table.add new ReduceAction307(151)
-               reduce_table.add new ReduceAction308(151)
-               reduce_table.add new ReduceAction309(151)
-               reduce_table.add new ReduceAction310(151)
-               reduce_table.add new ReduceAction311(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 ReduceAction313(152)
+               reduce_table.add new ReduceAction339(152)
                reduce_table.add new ReduceAction165(153)
-               reduce_table.add new ReduceAction315(153)
+               reduce_table.add new ReduceAction341(153)
                reduce_table.add new ReduceAction165(154)
-               reduce_table.add new ReduceAction317(154)
+               reduce_table.add new ReduceAction343(154)
                reduce_table.add new ReduceAction165(155)
-               reduce_table.add new ReduceAction319(155)
-               reduce_table.add new ReduceAction320(155)
+               reduce_table.add new ReduceAction345(155)
+               reduce_table.add new ReduceAction346(155)
                reduce_table.add new ReduceAction165(156)
-               reduce_table.add new ReduceAction322(156)
-               reduce_table.add new ReduceAction323(156)
+               reduce_table.add new ReduceAction348(156)
+               reduce_table.add new ReduceAction349(156)
                reduce_table.add new ReduceAction165(157)
-               reduce_table.add new ReduceAction325(157)
-               reduce_table.add new ReduceAction326(157)
-               reduce_table.add new ReduceAction327(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 ReduceAction329(158)
+               reduce_table.add new ReduceAction355(158)
                reduce_table.add new ReduceAction165(159)
-               reduce_table.add new ReduceAction331(159)
-               reduce_table.add new ReduceAction332(159)
-               reduce_table.add new ReduceAction333(159)
-               reduce_table.add new ReduceAction334(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 ReduceAction336(160)
-               reduce_table.add new ReduceAction337(160)
-               reduce_table.add new ReduceAction338(160)
-               reduce_table.add new ReduceAction339(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 ReduceAction165(161)
-               reduce_table.add new ReduceAction341(161)
-               reduce_table.add new ReduceAction342(161)
+               reduce_table.add new ReduceAction368(161)
+               reduce_table.add new ReduceAction369(161)
+               reduce_table.add new ReduceAction370(161)
                reduce_table.add new ReduceAction190(161)
-               reduce_table.add new ReduceAction344(161)
+               reduce_table.add new ReduceAction372(161)
                reduce_table.add new ReduceAction191(161)
-               reduce_table.add new ReduceAction346(161)
+               reduce_table.add new ReduceAction374(161)
                reduce_table.add new ReduceAction192(161)
-               reduce_table.add new ReduceAction348(161)
+               reduce_table.add new ReduceAction376(161)
                reduce_table.add new ReduceAction193(161)
-               reduce_table.add new ReduceAction350(161)
+               reduce_table.add new ReduceAction378(161)
                reduce_table.add new ReduceAction194(161)
-               reduce_table.add new ReduceAction352(161)
+               reduce_table.add new ReduceAction380(161)
                reduce_table.add new ReduceAction195(161)
-               reduce_table.add new ReduceAction354(161)
+               reduce_table.add new ReduceAction382(161)
                reduce_table.add new ReduceAction196(161)
-               reduce_table.add new ReduceAction356(161)
+               reduce_table.add new ReduceAction384(161)
                reduce_table.add new ReduceAction197(161)
-               reduce_table.add new ReduceAction358(161)
+               reduce_table.add new ReduceAction386(161)
                reduce_table.add new ReduceAction198(161)
-               reduce_table.add new ReduceAction360(161)
+               reduce_table.add new ReduceAction388(161)
                reduce_table.add new ReduceAction199(161)
-               reduce_table.add new ReduceAction362(161)
+               reduce_table.add new ReduceAction390(161)
                reduce_table.add new ReduceAction200(161)
-               reduce_table.add new ReduceAction364(161)
-               reduce_table.add new ReduceAction365(161)
-               reduce_table.add new ReduceAction366(161)
-               reduce_table.add new ReduceAction367(161)
-               reduce_table.add new ReduceAction368(161)
-               reduce_table.add new ReduceAction369(161)
-               reduce_table.add new ReduceAction370(161)
-               reduce_table.add new ReduceAction371(161)
-               reduce_table.add new ReduceAction372(161)
-               reduce_table.add new ReduceAction373(161)
-               reduce_table.add new ReduceAction374(161)
-               reduce_table.add new ReduceAction375(161)
-               reduce_table.add new ReduceAction376(161)
+               reduce_table.add new ReduceAction392(161)
+               reduce_table.add new ReduceAction201(161)
+               reduce_table.add new ReduceAction394(161)
+               reduce_table.add new ReduceAction202(161)
+               reduce_table.add new ReduceAction396(161)
+               reduce_table.add new ReduceAction203(161)
+               reduce_table.add new ReduceAction398(161)
+               reduce_table.add new ReduceAction204(161)
+               reduce_table.add new ReduceAction400(161)
+               reduce_table.add new ReduceAction205(161)
+               reduce_table.add new ReduceAction402(161)
+               reduce_table.add new ReduceAction403(161)
+               reduce_table.add new ReduceAction404(161)
+               reduce_table.add new ReduceAction405(161)
+               reduce_table.add new ReduceAction406(161)
+               reduce_table.add new ReduceAction407(161)
+               reduce_table.add new ReduceAction408(161)
+               reduce_table.add new ReduceAction409(161)
+               reduce_table.add new ReduceAction410(161)
+               reduce_table.add new ReduceAction411(161)
+               reduce_table.add new ReduceAction412(161)
+               reduce_table.add new ReduceAction413(161)
+               reduce_table.add new ReduceAction414(161)
                reduce_table.add new ReduceAction165(162)
-               reduce_table.add new ReduceAction378(162)
-               reduce_table.add new ReduceAction379(162)
-               reduce_table.add new ReduceAction380(163)
-               reduce_table.add new ReduceAction381(163)
-               reduce_table.add new ReduceAction382(163)
-               reduce_table.add new ReduceAction383(163)
-               reduce_table.add new ReduceAction384(163)
-               reduce_table.add new ReduceAction385(163)
-               reduce_table.add new ReduceAction386(163)
-               reduce_table.add new ReduceAction387(163)
+               reduce_table.add new ReduceAction416(162)
+               reduce_table.add new ReduceAction417(162)
+               reduce_table.add new ReduceAction418(163)
+               reduce_table.add new ReduceAction419(163)
+               reduce_table.add new ReduceAction420(163)
+               reduce_table.add new ReduceAction421(163)
+               reduce_table.add new ReduceAction422(163)
+               reduce_table.add new ReduceAction423(163)
+               reduce_table.add new ReduceAction424(163)
+               reduce_table.add new ReduceAction425(163)
                reduce_table.add new ReduceAction165(163)
-               reduce_table.add new ReduceAction412(164)
-               reduce_table.add new ReduceAction413(164)
-               reduce_table.add new ReduceAction414(165)
+               reduce_table.add new ReduceAction450(164)
+               reduce_table.add new ReduceAction451(164)
+               reduce_table.add new ReduceAction452(165)
                reduce_table.add new ReduceAction22(165)
-               reduce_table.add new ReduceAction416(166)
-               reduce_table.add new ReduceAction416(167)
-               reduce_table.add new ReduceAction397(168)
-               reduce_table.add new ReduceAction398(168)
-               reduce_table.add new ReduceAction438(169)
+               reduce_table.add new ReduceAction454(166)
+               reduce_table.add new ReduceAction454(167)
+               reduce_table.add new ReduceAction435(168)
+               reduce_table.add new ReduceAction436(168)
+               reduce_table.add new ReduceAction476(169)
                reduce_table.add new ReduceAction165(169)
                reduce_table.add new ReduceAction165(169)
-               reduce_table.add new ReduceAction441(169)
-               reduce_table.add new ReduceAction442(169)
+               reduce_table.add new ReduceAction479(169)
+               reduce_table.add new ReduceAction480(169)
+               reduce_table.add new ReduceAction481(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 ReduceAction295(172)
+               reduce_table.add new ReduceAction321(172)
                reduce_table.add new ReduceAction165(173)
-               reduce_table.add new ReduceAction297(173)
-               reduce_table.add new ReduceAction298(173)
-               reduce_table.add new ReduceAction299(173)
-               reduce_table.add new ReduceAction300(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 ReduceAction302(174)
+               reduce_table.add new ReduceAction328(174)
                reduce_table.add new ReduceAction165(175)
-               reduce_table.add new ReduceAction304(175)
-               reduce_table.add new ReduceAction305(175)
-               reduce_table.add new ReduceAction306(175)
-               reduce_table.add new ReduceAction307(175)
-               reduce_table.add new ReduceAction308(175)
-               reduce_table.add new ReduceAction309(175)
-               reduce_table.add new ReduceAction310(175)
-               reduce_table.add new ReduceAction311(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 ReduceAction313(176)
+               reduce_table.add new ReduceAction339(176)
                reduce_table.add new ReduceAction165(177)
-               reduce_table.add new ReduceAction315(177)
+               reduce_table.add new ReduceAction341(177)
                reduce_table.add new ReduceAction165(178)
-               reduce_table.add new ReduceAction317(178)
+               reduce_table.add new ReduceAction343(178)
                reduce_table.add new ReduceAction165(179)
-               reduce_table.add new ReduceAction319(179)
-               reduce_table.add new ReduceAction320(179)
+               reduce_table.add new ReduceAction345(179)
+               reduce_table.add new ReduceAction346(179)
                reduce_table.add new ReduceAction165(180)
-               reduce_table.add new ReduceAction322(180)
-               reduce_table.add new ReduceAction323(180)
+               reduce_table.add new ReduceAction348(180)
+               reduce_table.add new ReduceAction349(180)
                reduce_table.add new ReduceAction165(181)
-               reduce_table.add new ReduceAction325(181)
-               reduce_table.add new ReduceAction326(181)
-               reduce_table.add new ReduceAction327(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 ReduceAction329(182)
+               reduce_table.add new ReduceAction355(182)
                reduce_table.add new ReduceAction165(183)
-               reduce_table.add new ReduceAction331(183)
-               reduce_table.add new ReduceAction332(183)
-               reduce_table.add new ReduceAction333(183)
-               reduce_table.add new ReduceAction334(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 ReduceAction336(184)
-               reduce_table.add new ReduceAction337(184)
-               reduce_table.add new ReduceAction871(184)
+               reduce_table.add new ReduceAction362(184)
+               reduce_table.add new ReduceAction363(184)
+               reduce_table.add new ReduceAction961(184)
                reduce_table.add new ReduceAction165(185)
-               reduce_table.add new ReduceAction873(185)
-               reduce_table.add new ReduceAction874(185)
-               reduce_table.add new ReduceAction875(185)
-               reduce_table.add new ReduceAction876(185)
-               reduce_table.add new ReduceAction877(185)
-               reduce_table.add new ReduceAction878(185)
-               reduce_table.add new ReduceAction879(185)
-               reduce_table.add new ReduceAction880(185)
-               reduce_table.add new ReduceAction881(185)
-               reduce_table.add new ReduceAction198(185)
-               reduce_table.add new ReduceAction360(185)
-               reduce_table.add new ReduceAction884(185)
-               reduce_table.add new ReduceAction885(185)
-               reduce_table.add new ReduceAction366(185)
-               reduce_table.add new ReduceAction367(185)
-               reduce_table.add new ReduceAction368(185)
-               reduce_table.add new ReduceAction369(185)
-               reduce_table.add new ReduceAction370(185)
-               reduce_table.add new ReduceAction371(185)
-               reduce_table.add new ReduceAction372(185)
-               reduce_table.add new ReduceAction373(185)
-               reduce_table.add new ReduceAction374(185)
-               reduce_table.add new ReduceAction375(185)
-               reduce_table.add new ReduceAction376(185)
+               reduce_table.add new ReduceAction963(185)
+               reduce_table.add new ReduceAction964(185)
+               reduce_table.add new ReduceAction965(185)
+               reduce_table.add new ReduceAction966(185)
+               reduce_table.add new ReduceAction967(185)
+               reduce_table.add new ReduceAction968(185)
+               reduce_table.add new ReduceAction969(185)
+               reduce_table.add new ReduceAction970(185)
+               reduce_table.add new ReduceAction971(185)
+               reduce_table.add new ReduceAction202(185)
+               reduce_table.add new ReduceAction396(185)
+               reduce_table.add new ReduceAction974(185)
+               reduce_table.add new ReduceAction975(185)
+               reduce_table.add new ReduceAction404(185)
+               reduce_table.add new ReduceAction405(185)
+               reduce_table.add new ReduceAction406(185)
+               reduce_table.add new ReduceAction407(185)
+               reduce_table.add new ReduceAction408(185)
+               reduce_table.add new ReduceAction409(185)
+               reduce_table.add new ReduceAction410(185)
+               reduce_table.add new ReduceAction411(185)
+               reduce_table.add new ReduceAction412(185)
+               reduce_table.add new ReduceAction413(185)
+               reduce_table.add new ReduceAction414(185)
                reduce_table.add new ReduceAction165(186)
-               reduce_table.add new ReduceAction378(186)
-               reduce_table.add new ReduceAction379(186)
-               reduce_table.add new ReduceAction380(187)
-               reduce_table.add new ReduceAction381(187)
-               reduce_table.add new ReduceAction382(187)
-               reduce_table.add new ReduceAction383(187)
-               reduce_table.add new ReduceAction384(187)
-               reduce_table.add new ReduceAction385(187)
-               reduce_table.add new ReduceAction386(187)
-               reduce_table.add new ReduceAction387(187)
+               reduce_table.add new ReduceAction416(186)
+               reduce_table.add new ReduceAction417(186)
+               reduce_table.add new ReduceAction418(187)
+               reduce_table.add new ReduceAction419(187)
+               reduce_table.add new ReduceAction420(187)
+               reduce_table.add new ReduceAction421(187)
+               reduce_table.add new ReduceAction422(187)
+               reduce_table.add new ReduceAction423(187)
+               reduce_table.add new ReduceAction424(187)
+               reduce_table.add new ReduceAction425(187)
                reduce_table.add new ReduceAction165(187)
-               reduce_table.add new ReduceAction909(188)
-               reduce_table.add new ReduceAction910(188)
+               reduce_table.add new ReduceAction999(188)
+               reduce_table.add new ReduceAction1000(188)
+               reduce_table.add new ReduceAction1001(188)
                reduce_table.add new ReduceAction162(189)
                reduce_table.add new ReduceAction163(189)
                reduce_table.add new ReduceAction164(189)
@@ -955,25 +1046,33 @@ redef class Parser
                reduce_table.add new ReduceAction200(190)
                reduce_table.add new ReduceAction201(190)
                reduce_table.add new ReduceAction202(190)
-               reduce_table.add new ReduceAction201(190)
+               reduce_table.add new ReduceAction203(190)
                reduce_table.add new ReduceAction204(190)
                reduce_table.add new ReduceAction205(190)
-               reduce_table.add new ReduceAction204(190)
+               reduce_table.add new ReduceAction206(190)
                reduce_table.add new ReduceAction207(190)
-               reduce_table.add new ReduceAction263(191)
-               reduce_table.add new ReduceAction264(191)
-               reduce_table.add new ReduceAction265(191)
-               reduce_table.add new ReduceAction266(192)
-               reduce_table.add new ReduceAction275(193)
-               reduce_table.add new ReduceAction276(193)
-               reduce_table.add new ReduceAction277(194)
-               reduce_table.add new ReduceAction278(194)
-               reduce_table.add new ReduceAction279(195)
-               reduce_table.add new ReduceAction280(195)
-               reduce_table.add new ReduceAction284(196)
-               reduce_table.add new ReduceAction285(196)
-               reduce_table.add new ReduceAction289(197)
-               reduce_table.add new ReduceAction290(197)
+               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)
@@ -1004,11 +1103,19 @@ redef class Parser
                reduce_table.add new ReduceAction200(198)
                reduce_table.add new ReduceAction201(198)
                reduce_table.add new ReduceAction202(198)
-               reduce_table.add new ReduceAction201(198)
+               reduce_table.add new ReduceAction203(198)
                reduce_table.add new ReduceAction204(198)
                reduce_table.add new ReduceAction205(198)
-               reduce_table.add new ReduceAction204(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)
@@ -1031,7 +1138,7 @@ redef class Parser
                reduce_table.add new ReduceAction165(201)
                reduce_table.add new ReduceAction165(201)
                reduce_table.add new ReduceAction165(201)
-               reduce_table.add new ReduceAction207(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)
@@ -1048,7 +1155,7 @@ redef class Parser
                reduce_table.add new ReduceAction165(202)
                reduce_table.add new ReduceAction165(202)
                reduce_table.add new ReduceAction165(202)
-               reduce_table.add new ReduceAction207(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)
@@ -1065,7 +1172,7 @@ redef class Parser
                reduce_table.add new ReduceAction165(203)
                reduce_table.add new ReduceAction165(203)
                reduce_table.add new ReduceAction165(203)
-               reduce_table.add new ReduceAction207(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)
@@ -1082,50 +1189,50 @@ redef class Parser
                reduce_table.add new ReduceAction165(204)
                reduce_table.add new ReduceAction165(204)
                reduce_table.add new ReduceAction165(204)
-               reduce_table.add new ReduceAction207(204)
-               reduce_table.add new ReduceAction444(205)
-               reduce_table.add new ReduceAction446(205)
-               reduce_table.add new ReduceAction484(206)
-               reduce_table.add new ReduceAction485(206)
+               reduce_table.add new ReduceAction215(204)
+               reduce_table.add new ReduceAction483(205)
+               reduce_table.add new ReduceAction485(205)
+               reduce_table.add new ReduceAction523(206)
+               reduce_table.add new ReduceAction524(206)
                reduce_table.add new ReduceAction23(206)
-               reduce_table.add new ReduceAction1078(207)
-               reduce_table.add new ReduceAction1079(207)
-               reduce_table.add new ReduceAction1080(208)
-               reduce_table.add new ReduceAction1081(208)
-               reduce_table.add new ReduceAction1082(209)
-               reduce_table.add new ReduceAction1083(209)
+               reduce_table.add new ReduceAction1185(207)
+               reduce_table.add new ReduceAction1186(207)
+               reduce_table.add new ReduceAction1187(208)
+               reduce_table.add new ReduceAction1188(208)
+               reduce_table.add new ReduceAction1189(209)
+               reduce_table.add new ReduceAction1190(209)
                reduce_table.add new ReduceAction38(210)
-               reduce_table.add new ReduceAction1085(210)
+               reduce_table.add new ReduceAction1192(210)
                reduce_table.add new ReduceAction46(211)
-               reduce_table.add new ReduceAction1087(211)
-               reduce_table.add new ReduceAction418(212)
-               reduce_table.add new ReduceAction1089(212)
-               reduce_table.add new ReduceAction1090(213)
-               reduce_table.add new ReduceAction1091(213)
-               reduce_table.add new ReduceAction1092(214)
-               reduce_table.add new ReduceAction1093(214)
+               reduce_table.add new ReduceAction1194(211)
+               reduce_table.add new ReduceAction456(212)
+               reduce_table.add new ReduceAction1196(212)
+               reduce_table.add new ReduceAction1197(213)
+               reduce_table.add new ReduceAction1198(213)
+               reduce_table.add new ReduceAction1199(214)
+               reduce_table.add new ReduceAction1200(214)
                reduce_table.add new ReduceAction156(215)
-               reduce_table.add new ReduceAction1095(215)
-               reduce_table.add new ReduceAction397(216)
-               reduce_table.add new ReduceAction1097(216)
-               reduce_table.add new ReduceAction397(217)
-               reduce_table.add new ReduceAction1097(217)
-               reduce_table.add new ReduceAction397(218)
-               reduce_table.add new ReduceAction1097(218)
-               reduce_table.add new ReduceAction458(219)
-               reduce_table.add new ReduceAction1103(219)
-               reduce_table.add new ReduceAction418(220)
-               reduce_table.add new ReduceAction1089(220)
-               reduce_table.add new ReduceAction397(221)
-               reduce_table.add new ReduceAction1097(221)
-               reduce_table.add new ReduceAction397(222)
-               reduce_table.add new ReduceAction1097(222)
-               reduce_table.add new ReduceAction459(223)
-               reduce_table.add new ReduceAction1111(223)
-               reduce_table.add new ReduceAction1112(224)
-               reduce_table.add new ReduceAction1113(224)
-               reduce_table.add new ReduceAction481(225)
-               reduce_table.add new ReduceAction500(225)
+               reduce_table.add new ReduceAction1202(215)
+               reduce_table.add new ReduceAction435(216)
+               reduce_table.add new ReduceAction1204(216)
+               reduce_table.add new ReduceAction435(217)
+               reduce_table.add new ReduceAction1204(217)
+               reduce_table.add new ReduceAction435(218)
+               reduce_table.add new ReduceAction1204(218)
+               reduce_table.add new ReduceAction497(219)
+               reduce_table.add new ReduceAction1210(219)
+               reduce_table.add new ReduceAction456(220)
+               reduce_table.add new ReduceAction1196(220)
+               reduce_table.add new ReduceAction435(221)
+               reduce_table.add new ReduceAction1204(221)
+               reduce_table.add new ReduceAction435(222)
+               reduce_table.add new ReduceAction1204(222)
+               reduce_table.add new ReduceAction498(223)
+               reduce_table.add new ReduceAction1218(223)
+               reduce_table.add new ReduceAction1219(224)
+               reduce_table.add new ReduceAction1220(224)
+               reduce_table.add new ReduceAction520(225)
+               reduce_table.add new ReduceAction539(225)
                return reduce_table
        end
 end
@@ -5638,6 +5745,179 @@ private class ReduceAction194
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist6
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode8
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class 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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var tclassidnode8 = nodearraylist5
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist6
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist7
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class 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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tclassidnode9 = nodearraylist6
+                                       assert tclassidnode9 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               tclassidnode9
+                                       )
+                                       var tidnode10 = nodearraylist7
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var pexprsnode11 = nodearraylist8
+                                       assert pexprsnode11 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class 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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               null
+                                       )
+                                       var tidnode10 = nodearraylist6
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var pexprsnode11 = nodearraylist7
+                                       assert pexprsnode11 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class 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
@@ -5658,7 +5938,7 @@ private class ReduceAction194
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction195
+private class ReduceAction199
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5691,7 +5971,7 @@ private class ReduceAction195
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction196
+private class ReduceAction200
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5728,7 +6008,7 @@ private class ReduceAction196
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction197
+private class ReduceAction201
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5762,7 +6042,7 @@ private class ReduceAction197
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction198
+private class ReduceAction202
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5785,7 +6065,7 @@ private class ReduceAction198
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction199
+private class ReduceAction203
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5810,7 +6090,39 @@ private class ReduceAction199
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction200
+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
@@ -5831,7 +6143,7 @@ private class ReduceAction200
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction201
+private class ReduceAction206
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5857,7 +6169,7 @@ private class ReduceAction201
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction202
+private class ReduceAction207
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5884,69 +6196,136 @@ private class ReduceAction202
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction204
+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 pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tkwinitnode3 = nodearraylist2
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var pexprsnode4 = nodearraylist3
-                                       assert pexprsnode4 isa nullable AExprs
+                                       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,
-                                               tkwinitnode3,
-                                               pexprsnode4
+                                               tkwinitnode5,
+                                               pexprsnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction205
+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 pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tkwinitnode3 = nodearraylist3
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var pexprsnode4 = nodearraylist4
-                                       assert pexprsnode4 isa nullable AExprs
+                                       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,
-                                               tkwinitnode3,
-                                               pexprsnode4
+                                               tkwinitnode5,
+                                               pexprsnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction207
+private class ReduceAction212
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwdebugnode2 = nodearraylist1
-                                       assert tkwdebugnode2 isa nullable TKwdebug
-                                       var tkwtypenode3 = nodearraylist2
-                                       assert tkwtypenode3 isa nullable TKwtype
-                                       var pexprnode4 = nodearraylist5
-                                       assert pexprnode4 isa nullable AExpr
-                                       var ptypenode5 = nodearraylist3
-                                       assert ptypenode5 isa nullable AType
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tkwinitnode3 = nodearraylist2
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist3
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction213
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tkwinitnode3 = nodearraylist3
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist4
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction215
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwdebugnode2 = nodearraylist1
+                                       assert tkwdebugnode2 isa nullable TKwdebug
+                                       var tkwtypenode3 = nodearraylist2
+                                       assert tkwtypenode3 isa nullable TKwtype
+                                       var pexprnode4 = nodearraylist5
+                                       assert pexprnode4 isa nullable AExpr
+                                       var ptypenode5 = nodearraylist3
+                                       assert ptypenode5 isa nullable AType
                                        var pexprnode1: nullable ADebugTypeExpr = new ADebugTypeExpr.init_adebugtypeexpr(
                                                tkwdebugnode2,
                                                tkwtypenode3,
@@ -5957,7 +6336,7 @@ private class ReduceAction207
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction208
+private class ReduceAction216
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5973,7 +6352,7 @@ private class ReduceAction208
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction209
+private class ReduceAction217
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5992,7 +6371,7 @@ private class ReduceAction209
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction210
+private class ReduceAction218
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6018,7 +6397,7 @@ private class ReduceAction210
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction211
+private class ReduceAction219
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6047,7 +6426,7 @@ private class ReduceAction211
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction212
+private class ReduceAction220
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6080,7 +6459,7 @@ private class ReduceAction212
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction213
+private class ReduceAction221
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6116,7 +6495,7 @@ private class ReduceAction213
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction214
+private class ReduceAction222
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6146,7 +6525,44 @@ private class ReduceAction214
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction215
+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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tattridnode5 = nodearraylist6
+                                       assert tattridnode5 isa nullable TAttrid
+                                       var tassignnode6 = nodearraylist7
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist8
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode5,
+                                               tassignnode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction224
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6172,7 +6588,7 @@ private class ReduceAction215
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction216
+private class ReduceAction225
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6209,7 +6625,7 @@ private class ReduceAction216
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction217
+private class ReduceAction226
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6247,7 +6663,7 @@ private class ReduceAction217
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction218
+private class ReduceAction227
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6292,7 +6708,7 @@ private class ReduceAction218
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction219
+private class ReduceAction228
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6338,7 +6754,7 @@ private class ReduceAction219
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction220
+private class ReduceAction229
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6387,7 +6803,7 @@ private class ReduceAction220
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction221
+private class ReduceAction230
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6437,7 +6853,7 @@ private class ReduceAction221
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction222
+private class ReduceAction231
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6483,7 +6899,7 @@ private class ReduceAction222
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction223
+private class ReduceAction232
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6530,106 +6946,42 @@ private class ReduceAction223
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction224
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var 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 ReduceAction225
-       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 ReduceAction226
+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
@@ -6638,40 +6990,43 @@ private class ReduceAction226
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction227
+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
@@ -6680,73 +7035,1018 @@ private class ReduceAction227
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction228
+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
+                                       var tidnode9 = nodearraylist6
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist7
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var tassignnode11 = nodearraylist8
+                                       assert tassignnode11 isa nullable TAssign
+                                       var pexprnode12 = nodearraylist9
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode10,
+                                               tassignnode11,
+                                               pexprnode12
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class 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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var tclassidnode8 = nodearraylist5
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist6
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var tassignnode12 = nodearraylist7
+                                       assert tassignnode12 isa nullable TAssign
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode10,
+                                               tassignnode12,
+                                               pexprnode13
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class 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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tclassidnode9 = nodearraylist6
+                                       assert tclassidnode9 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               tclassidnode9
+                                       )
+                                       var tidnode10 = nodearraylist7
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var pexprsnode11 = nodearraylist8
+                                       assert pexprsnode11 isa nullable AExprs
+                                       var tassignnode12 = nodearraylist9
+                                       assert tassignnode12 isa nullable TAssign
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               tassignnode12,
+                                               pexprnode13
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class 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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tclassidnode9 = nodearraylist6
+                                       assert tclassidnode9 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               tclassidnode9
+                                       )
+                                       var tidnode10 = nodearraylist7
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var listnode12 = new Array[Object]
+                                       var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode12
+                                       )
+                                       var tassignnode13 = nodearraylist8
+                                       assert tassignnode13 isa nullable TAssign
+                                       var pexprnode14 = nodearraylist9
+                                       assert pexprnode14 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               tassignnode13,
+                                               pexprnode14
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class 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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               null
+                                       )
+                                       var tidnode10 = nodearraylist6
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var pexprsnode11 = nodearraylist7
+                                       assert pexprsnode11 isa nullable AExprs
+                                       var tassignnode12 = nodearraylist8
+                                       assert tassignnode12 isa nullable TAssign
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               tassignnode12,
+                                               pexprnode13
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class 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
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               null
+                                       )
+                                       var tidnode10 = nodearraylist6
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var listnode12 = new Array[Object]
+                                       var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode12
+                                       )
+                                       var tassignnode13 = nodearraylist7
+                                       assert tassignnode13 isa nullable TAssign
+                                       var pexprnode14 = nodearraylist8
+                                       assert pexprnode14 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               tassignnode13,
+                                               pexprnode14
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction241
+       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 ReduceAction242
+       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 ReduceAction243
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist1
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist2
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist3
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var tassignnode9 = nodearraylist4
+                                       assert tassignnode9 isa nullable TAssign
+                                       var pexprnode10 = nodearraylist5
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               tassignnode9,
+                                               pexprnode10
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction244
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist1
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist2
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var tassignnode10 = nodearraylist3
+                                       assert tassignnode10 isa nullable TAssign
+                                       var pexprnode11 = nodearraylist4
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               tassignnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction245
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist4
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var tassignnode10 = nodearraylist5
                                        assert tassignnode10 isa nullable TAssign
                                        var pexprnode11 = nodearraylist6
                                        assert pexprnode11 isa nullable AExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               tassignnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction246
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var tassignnode11 = nodearraylist4
+                                       assert tassignnode11 isa nullable TAssign
+                                       var pexprnode12 = nodearraylist5
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               tassignnode11,
+                                               pexprnode12
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction247
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist2
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist3
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var tassignnode10 = nodearraylist4
+                                       assert tassignnode10 isa nullable TAssign
+                                       var pexprnode11 = nodearraylist5
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               tassignnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction248
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist2
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var tassignnode11 = nodearraylist3
+                                       assert tassignnode11 isa nullable TAssign
+                                       var pexprnode12 = nodearraylist4
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               tassignnode11,
+                                               pexprnode12
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class 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
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tattridnode3 = nodearraylist2
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var passignopnode4 = nodearraylist3
+                                       assert passignopnode4 isa nullable AAssignOp
+                                       var pexprnode5 = nodearraylist4
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class 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 = nodearraylist5
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var passignopnode7 = nodearraylist6
+                                       assert passignopnode7 isa nullable AAssignOp
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6,
+                                               passignopnode7,
+                                               pexprnode8
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class 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 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode5 = nodearraylist4
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode7
+                                       )
+                                       var passignopnode8 = nodearraylist5
+                                       assert passignopnode8 isa nullable AAssignOp
+                                       var pexprnode9 = nodearraylist6
+                                       assert pexprnode9 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6,
+                                               passignopnode8,
+                                               pexprnode9
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class 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 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist4
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist6
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var passignopnode9 = nodearraylist7
+                                       assert passignopnode9 isa nullable AAssignOp
+                                       var pexprnode10 = nodearraylist8
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               passignopnode9,
+                                               pexprnode10
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class 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 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist4
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var passignopnode10 = nodearraylist6
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist7
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               passignopnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction257
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist5
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist7
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var passignopnode10 = nodearraylist8
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist9
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
                                                pqidnode3,
                                                pexprsnode9,
-                                               tassignnode10,
+                                               passignopnode10,
                                                pexprnode11
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction229
+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,
@@ -6756,82 +8056,90 @@ private class ReduceAction229
                                        var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
                                                listnode10
                                        )
-                                       var tassignnode11 = nodearraylist4
-                                       assert tassignnode11 isa nullable TAssign
-                                       var pexprnode12 = nodearraylist5
+                                       var passignopnode11 = nodearraylist7
+                                       assert passignopnode11 isa nullable AAssignOp
+                                       var pexprnode12 = nodearraylist8
                                        assert pexprnode12 isa nullable AExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
                                                pqidnode3,
                                                pexprsnode9,
-                                               tassignnode11,
+                                               passignopnode11,
                                                pexprnode12
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction230
+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 tassignnode10 = nodearraylist4
-                                       assert tassignnode10 isa nullable TAssign
-                                       var pexprnode11 = nodearraylist5
+                                       var passignopnode10 = nodearraylist7
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist8
                                        assert pexprnode11 isa nullable AExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
                                                pqidnode3,
                                                pexprsnode9,
-                                               tassignnode10,
+                                               passignopnode10,
                                                pexprnode11
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction231
+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,
@@ -6841,53 +8149,27 @@ private class ReduceAction231
                                        var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
                                                listnode10
                                        )
-                                       var tassignnode11 = nodearraylist3
-                                       assert tassignnode11 isa nullable TAssign
-                                       var pexprnode12 = nodearraylist4
+                                       var passignopnode11 = nodearraylist6
+                                       assert passignopnode11 isa nullable AAssignOp
+                                       var pexprnode12 = nodearraylist7
                                        assert pexprnode12 isa nullable AExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
                                                pqidnode3,
                                                pexprsnode9,
-                                               tassignnode11,
+                                               passignopnode11,
                                                pexprnode12
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction232
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var 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 ReduceAction233
+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
@@ -6895,130 +8177,88 @@ private class ReduceAction233
                                        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 ReduceAction234
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode3 = nodearraylist2
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist3
-                                       assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist4
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                       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 ReduceAction235
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode5 = nodearraylist4
-                                       assert tidnode5 isa nullable TId
-                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
                                                null,
-                                               tidnode5
+                                               tidnode7
                                        )
-                                       var pexprsnode6 = nodearraylist5
-                                       assert pexprsnode6 isa nullable AExprs
-                                       var passignopnode7 = nodearraylist6
-                                       assert passignopnode7 isa nullable AAssignOp
-                                       var pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa nullable AExpr
+                                       var pexprsnode8 = nodearraylist6
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var passignopnode9 = nodearraylist7
+                                       assert passignopnode9 isa nullable AAssignOp
+                                       var pexprnode10 = nodearraylist8
+                                       assert pexprnode10 isa nullable AExpr
                                        var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
-                                               pqidnode3,
-                                               pexprsnode6,
-                                               passignopnode7,
-                                               pexprnode8
+                                               pqidnode5,
+                                               pexprsnode8,
+                                               passignopnode9,
+                                               pexprnode10
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction236
+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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode5 = nodearraylist4
-                                       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 listnode7 = new Array[Object]
-                                       var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
-                                               listnode7
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
                                        )
-                                       var passignopnode8 = nodearraylist5
-                                       assert passignopnode8 isa nullable AAssignOp
-                                       var pexprnode9 = nodearraylist6
-                                       assert pexprnode9 isa nullable AExpr
+                                       var passignopnode10 = nodearraylist6
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist7
+                                       assert pexprnode11 isa nullable AExpr
                                        var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
-                                               pqidnode3,
-                                               pexprsnode6,
-                                               passignopnode8,
-                                               pexprnode9
+                                               pqidnode5,
+                                               pexprsnode8,
+                                               passignopnode10,
+                                               pexprnode11
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction237
+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
@@ -7027,43 +8267,50 @@ private class ReduceAction237
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode5 = new Array[Object]
-                                       var tclassidnode6 = nodearraylist4
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode5,
-                                               tclassidnode6
+                                       var 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 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 = nodearraylist6
-                                       assert pexprsnode8 isa nullable AExprs
-                                       var passignopnode9 = nodearraylist7
-                                       assert passignopnode9 isa nullable AAssignOp
-                                       var pexprnode10 = nodearraylist8
-                                       assert pexprnode10 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 passignopnode11 = nodearraylist8
+                                       assert passignopnode11 isa nullable AAssignOp
+                                       var pexprnode12 = nodearraylist9
+                                       assert pexprnode12 isa nullable AExpr
                                        var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
-                                               pqidnode3,
-                                               pexprsnode8,
-                                               passignopnode9,
-                                               pexprnode10
+                                               pqidnode5,
+                                               pexprsnode10,
+                                               passignopnode11,
+                                               pexprnode12
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction238
+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
@@ -7071,45 +8318,52 @@ private class ReduceAction238
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode5 = new Array[Object]
-                                       var tclassidnode6 = nodearraylist4
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode5,
-                                               tclassidnode6
+                                       var 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 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 listnode9 = new Array[Object]
-                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
-                                               listnode9
+                                       var tidnode9 = nodearraylist6
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode9
                                        )
-                                       var passignopnode10 = nodearraylist6
-                                       assert passignopnode10 isa nullable AAssignOp
-                                       var pexprnode11 = nodearraylist7
-                                       assert pexprnode11 isa nullable AExpr
+                                       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,
-                                               pqidnode3,
-                                               pexprsnode8,
-                                               passignopnode10,
-                                               pexprnode11
+                                               pqidnode5,
+                                               pexprsnode10,
+                                               passignopnode12,
+                                               pexprnode13
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction239
+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
@@ -7119,46 +8373,53 @@ private class ReduceAction239
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist4
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var tclassidnode7 = nodearraylist5
-                                       assert tclassidnode7 isa nullable TClassid
-                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode6,
-                                               tclassidnode7
-                                       )
-                                       var tidnode8 = nodearraylist6
-                                       assert tidnode8 isa nullable TId
-                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
-                                               pqualifiednode4,
-                                               tidnode8
+                                       var 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 = nodearraylist7
-                                       assert pexprsnode9 isa nullable AExprs
-                                       var passignopnode10 = nodearraylist8
-                                       assert passignopnode10 isa nullable AAssignOp
-                                       var pexprnode11 = nodearraylist9
-                                       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 passignopnode12 = nodearraylist9
+                                       assert passignopnode12 isa nullable AAssignOp
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa nullable AExpr
                                        var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
-                                               pqidnode3,
-                                               pexprsnode9,
-                                               passignopnode10,
-                                               pexprnode11
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               passignopnode12,
+                                               pexprnode13
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction240
+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
@@ -7167,48 +8428,55 @@ private class ReduceAction240
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist4
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var tclassidnode7 = nodearraylist5
-                                       assert tclassidnode7 isa nullable TClassid
-                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode6,
-                                               tclassidnode7
+                                       var 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 = nodearraylist6
-                                       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 passignopnode11 = nodearraylist7
-                                       assert passignopnode11 isa nullable AAssignOp
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
+                                       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,
-                                               pqidnode3,
-                                               pexprsnode9,
-                                               passignopnode11,
-                                               pexprnode12
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               passignopnode13,
+                                               pexprnode14
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction241
+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
@@ -7217,44 +8485,51 @@ private class ReduceAction241
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist4
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode6,
-                                               null
+                                       var 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 = nodearraylist5
-                                       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 pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               null
                                        )
-                                       var pexprsnode9 = nodearraylist6
-                                       assert pexprsnode9 isa nullable AExprs
-                                       var passignopnode10 = nodearraylist7
-                                       assert passignopnode10 isa nullable AAssignOp
-                                       var pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa nullable AExpr
+                                       var 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,
-                                               pqidnode3,
-                                               pexprsnode9,
-                                               passignopnode10,
-                                               pexprnode11
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               passignopnode12,
+                                               pexprnode13
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction242
+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
@@ -7262,42 +8537,48 @@ private class ReduceAction242
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist4
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode6,
+                                       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 tidnode8 = nodearraylist5
-                                       assert tidnode8 isa nullable TId
-                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
-                                               pqualifiednode4,
-                                               tidnode8
+                                       var tidnode10 = nodearraylist6
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
                                        )
-                                       var listnode10 = new Array[Object]
-                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
-                                               listnode10
+                                       var listnode12 = new Array[Object]
+                                       var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode12
                                        )
-                                       var passignopnode11 = nodearraylist6
-                                       assert passignopnode11 isa nullable AAssignOp
-                                       var pexprnode12 = nodearraylist7
-                                       assert pexprnode12 isa nullable AExpr
+                                       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,
-                                               pqidnode3,
-                                               pexprsnode9,
-                                               passignopnode11,
-                                               pexprnode12
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               passignopnode13,
+                                               pexprnode14
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction243
+private class ReduceAction269
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7330,7 +8611,7 @@ private class ReduceAction243
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction244
+private class ReduceAction270
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7364,7 +8645,7 @@ private class ReduceAction244
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction245
+private class ReduceAction271
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7405,7 +8686,7 @@ private class ReduceAction245
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction246
+private class ReduceAction272
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7447,7 +8728,7 @@ private class ReduceAction246
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction247
+private class ReduceAction273
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7492,7 +8773,7 @@ private class ReduceAction247
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction248
+private class ReduceAction274
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7538,7 +8819,7 @@ private class ReduceAction248
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction249
+private class ReduceAction275
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7580,7 +8861,7 @@ private class ReduceAction249
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction250
+private class ReduceAction276
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7623,7 +8904,7 @@ private class ReduceAction250
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction251
+private class ReduceAction277
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7650,7 +8931,7 @@ private class ReduceAction251
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction252
+private class ReduceAction278
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7665,7 +8946,7 @@ private class ReduceAction252
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction253
+private class ReduceAction279
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7680,7 +8961,7 @@ private class ReduceAction253
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction254
+private class ReduceAction280
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7695,7 +8976,7 @@ private class ReduceAction254
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction255
+private class ReduceAction281
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7710,7 +8991,7 @@ private class ReduceAction255
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction256
+private class ReduceAction282
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7725,7 +9006,7 @@ private class ReduceAction256
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction257
+private class ReduceAction283
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7740,7 +9021,7 @@ private class ReduceAction257
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction258
+private class ReduceAction284
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7755,7 +9036,7 @@ private class ReduceAction258
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction259
+private class ReduceAction285
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7770,7 +9051,7 @@ private class ReduceAction259
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction260
+private class ReduceAction286
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7785,7 +9066,7 @@ private class ReduceAction260
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction261
+private class ReduceAction287
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7800,7 +9081,7 @@ private class ReduceAction261
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction262
+private class ReduceAction288
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7815,7 +9096,7 @@ private class ReduceAction262
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction263
+private class ReduceAction289
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7840,7 +9121,7 @@ private class ReduceAction263
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction264
+private class ReduceAction290
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7862,7 +9143,7 @@ private class ReduceAction264
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction265
+private class ReduceAction291
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7891,7 +9172,7 @@ private class ReduceAction265
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction266
+private class ReduceAction292
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7928,7 +9209,7 @@ private class ReduceAction266
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction267
+private class ReduceAction293
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7959,7 +9240,7 @@ private class ReduceAction267
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction268
+private class ReduceAction294
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7997,7 +9278,7 @@ private class ReduceAction268
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction269
+private class ReduceAction295
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8031,7 +9312,7 @@ private class ReduceAction269
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction270
+private class ReduceAction296
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8066,7 +9347,7 @@ private class ReduceAction270
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction271
+private class ReduceAction297
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8101,7 +9382,7 @@ private class ReduceAction271
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction272
+private class ReduceAction298
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8132,7 +9413,7 @@ private class ReduceAction272
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction273
+private class ReduceAction299
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8164,7 +9445,7 @@ private class ReduceAction273
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction275
+private class ReduceAction301
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8187,7 +9468,7 @@ private class ReduceAction275
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction276
+private class ReduceAction302
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8207,7 +9488,7 @@ private class ReduceAction276
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction277
+private class ReduceAction303
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8240,7 +9521,7 @@ private class ReduceAction277
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction278
+private class ReduceAction304
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8270,7 +9551,7 @@ private class ReduceAction278
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction279
+private class ReduceAction305
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8305,7 +9586,7 @@ private class ReduceAction279
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction280
+private class ReduceAction306
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8337,7 +9618,7 @@ private class ReduceAction280
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction281
+private class ReduceAction307
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8352,7 +9633,7 @@ private class ReduceAction281
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction282
+private class ReduceAction308
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8374,7 +9655,7 @@ private class ReduceAction282
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction283
+private class ReduceAction309
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8401,7 +9682,7 @@ private class ReduceAction283
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction284
+private class ReduceAction310
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8434,7 +9715,7 @@ private class ReduceAction284
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction285
+private class ReduceAction311
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8464,7 +9745,7 @@ private class ReduceAction285
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction286
+private class ReduceAction312
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8494,7 +9775,7 @@ private class ReduceAction286
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction287
+private class ReduceAction313
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8527,7 +9808,7 @@ private class ReduceAction287
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction289
+private class ReduceAction315
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8555,7 +9836,7 @@ private class ReduceAction289
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction290
+private class ReduceAction316
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8586,7 +9867,7 @@ private class ReduceAction290
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction291
+private class ReduceAction317
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8608,7 +9889,7 @@ private class ReduceAction291
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction292
+private class ReduceAction318
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8633,7 +9914,7 @@ private class ReduceAction292
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction293
+private class ReduceAction319
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8645,7 +9926,7 @@ private class ReduceAction293
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction295
+private class ReduceAction321
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8685,7 +9966,7 @@ private class ReduceAction295
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction297
+private class ReduceAction323
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8709,7 +9990,7 @@ private class ReduceAction297
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction298
+private class ReduceAction324
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8733,7 +10014,7 @@ private class ReduceAction298
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction299
+private class ReduceAction325
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8761,7 +10042,7 @@ private class ReduceAction299
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction300
+private class ReduceAction326
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8785,7 +10066,7 @@ private class ReduceAction300
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction302
+private class ReduceAction328
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8805,7 +10086,7 @@ private class ReduceAction302
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction304
+private class ReduceAction330
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8829,7 +10110,7 @@ private class ReduceAction304
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction305
+private class ReduceAction331
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8853,7 +10134,7 @@ private class ReduceAction305
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction306
+private class ReduceAction332
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8877,7 +10158,7 @@ private class ReduceAction306
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction307
+private class ReduceAction333
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8901,7 +10182,7 @@ private class ReduceAction307
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction308
+private class ReduceAction334
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8925,7 +10206,7 @@ private class ReduceAction308
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction309
+private class ReduceAction335
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8949,7 +10230,7 @@ private class ReduceAction309
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction310
+private class ReduceAction336
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8973,7 +10254,7 @@ private class ReduceAction310
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction311
+private class ReduceAction337
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8997,7 +10278,7 @@ private class ReduceAction311
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction313
+private class ReduceAction339
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9021,7 +10302,7 @@ private class ReduceAction313
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction315
+private class ReduceAction341
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9045,7 +10326,7 @@ private class ReduceAction315
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction317
+private class ReduceAction343
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9069,7 +10350,7 @@ private class ReduceAction317
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction319
+private class ReduceAction345
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9093,7 +10374,7 @@ private class ReduceAction319
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction320
+private class ReduceAction346
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9117,7 +10398,7 @@ private class ReduceAction320
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction322
+private class ReduceAction348
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9141,7 +10422,7 @@ private class ReduceAction322
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction323
+private class ReduceAction349
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9165,7 +10446,7 @@ private class ReduceAction323
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction325
+private class ReduceAction351
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9189,7 +10470,7 @@ private class ReduceAction325
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction326
+private class ReduceAction352
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9213,7 +10494,7 @@ private class ReduceAction326
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction327
+private class ReduceAction353
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9237,7 +10518,7 @@ private class ReduceAction327
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction329
+private class ReduceAction355
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9261,7 +10542,7 @@ private class ReduceAction329
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction331
+private class ReduceAction357
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9280,7 +10561,7 @@ private class ReduceAction331
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction332
+private class ReduceAction358
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9299,7 +10580,7 @@ private class ReduceAction332
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction333
+private class ReduceAction359
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9318,7 +10599,7 @@ private class ReduceAction333
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction334
+private class ReduceAction360
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9338,7 +10619,7 @@ private class ReduceAction334
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction336
+private class ReduceAction362
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9363,7 +10644,7 @@ private class ReduceAction336
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction337
+private class ReduceAction363
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9389,7 +10670,7 @@ private class ReduceAction337
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction338
+private class ReduceAction364
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9415,7 +10696,40 @@ private class ReduceAction338
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction339
+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 tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tquestnode5 = nodearraylist3
+                                       assert tquestnode5 isa nullable TQuest
+                                       var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode4,
+                                               tquestnode5
+                                       )
+                                       var tattridnode6 = nodearraylist7
+                                       assert tattridnode6 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction366
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9437,7 +10751,7 @@ private class ReduceAction339
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction341
+private class ReduceAction368
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9459,7 +10773,36 @@ private class ReduceAction341
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction342
+private class ReduceAction369
+       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 ReduceAction370
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9477,7 +10820,7 @@ private class ReduceAction342
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction344
+private class ReduceAction372
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9507,7 +10850,7 @@ private class ReduceAction344
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction346
+private class ReduceAction374
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9545,7 +10888,7 @@ private class ReduceAction346
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction348
+private class ReduceAction376
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9568,65 +10911,242 @@ private class ReduceAction348
                                                listnode6,
                                                tclassidnode7
                                        )
-                                       var tidnode8 = nodearraylist6
-                                       assert tidnode8 isa nullable TId
-                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
-                                               pqualifiednode4,
-                                               tidnode8
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction378
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist5
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var 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 ReduceAction380
+       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 ReduceAction382
+       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 ReduceAction384
+       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 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 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 ReduceAction350
+private class ReduceAction386
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist4
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode6,
+                                       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 tidnode8 = nodearraylist5
-                                       assert tidnode8 isa nullable TId
-                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
-                                               pqualifiednode4,
-                                               tidnode8
+                                       var tidnode10 = nodearraylist6
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
                                        )
-                                       var listnode10 = new Array[Object]
-                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
-                                               listnode10
+                                       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 ReduceAction352
+private class ReduceAction388
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9652,7 +11172,7 @@ private class ReduceAction352
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction354
+private class ReduceAction390
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9686,7 +11206,7 @@ private class ReduceAction354
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction356
+private class ReduceAction392
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9724,7 +11244,7 @@ private class ReduceAction356
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction358
+private class ReduceAction394
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9759,7 +11279,7 @@ private class ReduceAction358
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction360
+private class ReduceAction396
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9783,7 +11303,7 @@ private class ReduceAction360
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction362
+private class ReduceAction398
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9809,7 +11329,40 @@ private class ReduceAction362
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction364
+private class ReduceAction400
+       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 ReduceAction402
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9831,7 +11384,7 @@ private class ReduceAction364
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction365
+private class ReduceAction403
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9850,7 +11403,7 @@ private class ReduceAction365
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction366
+private class ReduceAction404
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9884,7 +11437,7 @@ private class ReduceAction366
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction367
+private class ReduceAction405
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9919,7 +11472,7 @@ private class ReduceAction367
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction368
+private class ReduceAction406
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9961,7 +11514,7 @@ private class ReduceAction368
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction369
+private class ReduceAction407
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10004,7 +11557,7 @@ private class ReduceAction369
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction370
+private class ReduceAction408
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10050,7 +11603,7 @@ private class ReduceAction370
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction371
+private class ReduceAction409
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10097,7 +11650,7 @@ private class ReduceAction371
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction372
+private class ReduceAction410
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10140,7 +11693,7 @@ private class ReduceAction372
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction373
+private class ReduceAction411
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10184,7 +11737,7 @@ private class ReduceAction373
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction374
+private class ReduceAction412
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10220,7 +11773,7 @@ private class ReduceAction374
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction375
+private class ReduceAction413
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10261,7 +11814,7 @@ private class ReduceAction375
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction376
+private class ReduceAction414
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10294,7 +11847,7 @@ private class ReduceAction376
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction378
+private class ReduceAction416
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10313,7 +11866,7 @@ private class ReduceAction378
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction379
+private class ReduceAction417
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10336,7 +11889,7 @@ private class ReduceAction379
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction380
+private class ReduceAction418
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10355,7 +11908,7 @@ private class ReduceAction380
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction381
+private class ReduceAction419
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10374,7 +11927,7 @@ private class ReduceAction381
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction382
+private class ReduceAction420
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10393,7 +11946,7 @@ private class ReduceAction382
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction383
+private class ReduceAction421
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10412,7 +11965,7 @@ private class ReduceAction383
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction384
+private class ReduceAction422
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10431,7 +11984,7 @@ private class ReduceAction384
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction385
+private class ReduceAction423
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10450,7 +12003,7 @@ private class ReduceAction385
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction386
+private class ReduceAction424
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10469,7 +12022,7 @@ private class ReduceAction386
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction387
+private class ReduceAction425
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10488,7 +12041,7 @@ private class ReduceAction387
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction390
+private class ReduceAction428
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10527,7 +12080,7 @@ private class ReduceAction390
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction391
+private class ReduceAction429
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10566,7 +12119,7 @@ private class ReduceAction391
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction392
+private class ReduceAction430
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10600,7 +12153,7 @@ private class ReduceAction392
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction393
+private class ReduceAction431
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10629,7 +12182,7 @@ private class ReduceAction393
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction395
+private class ReduceAction433
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10652,7 +12205,7 @@ private class ReduceAction395
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction396
+private class ReduceAction434
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10665,7 +12218,7 @@ private class ReduceAction396
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction397
+private class ReduceAction435
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10680,7 +12233,7 @@ private class ReduceAction397
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction398
+private class ReduceAction436
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10699,7 +12252,7 @@ private class ReduceAction398
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction400
+private class ReduceAction438
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10711,7 +12264,7 @@ private class ReduceAction400
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction402
+private class ReduceAction440
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10743,7 +12296,7 @@ private class ReduceAction402
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction403
+private class ReduceAction441
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10770,7 +12323,7 @@ private class ReduceAction403
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction404
+private class ReduceAction442
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10801,7 +12354,7 @@ private class ReduceAction404
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction405
+private class ReduceAction443
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10823,7 +12376,7 @@ private class ReduceAction405
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction406
+private class ReduceAction444
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10839,7 +12392,7 @@ private class ReduceAction406
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction407
+private class ReduceAction445
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10854,7 +12407,7 @@ private class ReduceAction407
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction410
+private class ReduceAction448
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10869,7 +12422,7 @@ private class ReduceAction410
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction411
+private class ReduceAction449
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10884,7 +12437,7 @@ private class ReduceAction411
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction412
+private class ReduceAction450
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10911,7 +12464,7 @@ private class ReduceAction412
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction413
+private class ReduceAction451
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10944,7 +12497,7 @@ private class ReduceAction413
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction414
+private class ReduceAction452
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10955,7 +12508,7 @@ private class ReduceAction414
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction416
+private class ReduceAction454
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10987,7 +12540,7 @@ private class ReduceAction416
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction417
+private class ReduceAction455
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11031,7 +12584,7 @@ private class ReduceAction417
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction418
+private class ReduceAction456
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11046,7 +12599,7 @@ private class ReduceAction418
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction419
+private class ReduceAction457
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11065,7 +12618,7 @@ private class ReduceAction419
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction422
+private class ReduceAction460
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11100,7 +12653,7 @@ private class ReduceAction422
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction424
+private class ReduceAction462
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11113,7 +12666,7 @@ private class ReduceAction424
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction425
+private class ReduceAction463
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11146,7 +12699,7 @@ private class ReduceAction425
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction426
+private class ReduceAction464
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11182,7 +12735,7 @@ private class ReduceAction426
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction427
+private class ReduceAction465
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11226,7 +12779,7 @@ private class ReduceAction427
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction428
+private class ReduceAction466
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11273,7 +12826,7 @@ private class ReduceAction428
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction429
+private class ReduceAction467
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11310,7 +12863,7 @@ private class ReduceAction429
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction430
+private class ReduceAction468
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11336,7 +12889,7 @@ private class ReduceAction430
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction431
+private class ReduceAction469
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11365,7 +12918,7 @@ private class ReduceAction431
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction432
+private class ReduceAction470
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11402,7 +12955,7 @@ private class ReduceAction432
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction433
+private class ReduceAction471
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11442,7 +12995,7 @@ private class ReduceAction433
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction434
+private class ReduceAction472
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11472,7 +13025,7 @@ private class ReduceAction434
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction438
+private class ReduceAction476
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11487,7 +13040,7 @@ private class ReduceAction438
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction441
+private class ReduceAction479
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11508,7 +13061,35 @@ private class ReduceAction441
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction442
+private class ReduceAction480
+       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 ReduceAction481
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11525,7 +13106,7 @@ private class ReduceAction442
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction443
+private class ReduceAction482
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11540,7 +13121,7 @@ private class ReduceAction443
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction444
+private class ReduceAction483
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11555,7 +13136,7 @@ private class ReduceAction444
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction445
+private class ReduceAction484
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11570,7 +13151,7 @@ private class ReduceAction445
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction446
+private class ReduceAction485
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11585,7 +13166,7 @@ private class ReduceAction446
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction447
+private class ReduceAction486
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11611,7 +13192,7 @@ private class ReduceAction447
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction448
+private class ReduceAction487
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11633,7 +13214,7 @@ private class ReduceAction448
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction450
+private class ReduceAction489
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11652,7 +13233,7 @@ private class ReduceAction450
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction452
+private class ReduceAction491
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11665,7 +13246,7 @@ private class ReduceAction452
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction453
+private class ReduceAction492
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11691,7 +13272,7 @@ private class ReduceAction453
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction455
+private class ReduceAction494
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11711,7 +13292,7 @@ private class ReduceAction455
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction456
+private class ReduceAction495
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11725,7 +13306,7 @@ private class ReduceAction456
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction457
+private class ReduceAction496
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11743,7 +13324,7 @@ private class ReduceAction457
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction458
+private class ReduceAction497
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11757,7 +13338,7 @@ private class ReduceAction458
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction459
+private class ReduceAction498
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11772,7 +13353,7 @@ private class ReduceAction459
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction460
+private class ReduceAction499
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11793,7 +13374,7 @@ private class ReduceAction460
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction461
+private class ReduceAction500
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11811,7 +13392,7 @@ private class ReduceAction461
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction462
+private class ReduceAction501
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11833,7 +13414,7 @@ private class ReduceAction462
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction463
+private class ReduceAction502
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11855,7 +13436,7 @@ private class ReduceAction463
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction464
+private class ReduceAction503
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11881,7 +13462,7 @@ private class ReduceAction464
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction465
+private class ReduceAction504
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11898,7 +13479,7 @@ private class ReduceAction465
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction466
+private class ReduceAction505
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11919,7 +13500,7 @@ private class ReduceAction466
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction467
+private class ReduceAction506
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11937,7 +13518,7 @@ private class ReduceAction467
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction469
+private class ReduceAction508
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11953,7 +13534,7 @@ private class ReduceAction469
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction470
+private class ReduceAction509
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11977,7 +13558,7 @@ private class ReduceAction470
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction471
+private class ReduceAction510
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12005,7 +13586,7 @@ private class ReduceAction471
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction472
+private class ReduceAction511
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12030,7 +13611,7 @@ private class ReduceAction472
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction473
+private class ReduceAction512
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12041,7 +13622,7 @@ private class ReduceAction473
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction474
+private class ReduceAction513
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12053,7 +13634,7 @@ private class ReduceAction474
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction475
+private class ReduceAction514
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12066,7 +13647,7 @@ private class ReduceAction475
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction477
+private class ReduceAction516
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12079,7 +13660,7 @@ private class ReduceAction477
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction478
+private class ReduceAction517
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12092,7 +13673,7 @@ private class ReduceAction478
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction480
+private class ReduceAction519
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12103,7 +13684,7 @@ private class ReduceAction480
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction481
+private class ReduceAction520
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12112,7 +13693,7 @@ private class ReduceAction481
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction484
+private class ReduceAction523
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12129,7 +13710,7 @@ private class ReduceAction484
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction485
+private class ReduceAction524
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12147,7 +13728,7 @@ private class ReduceAction485
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction488
+private class ReduceAction527
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12158,7 +13739,7 @@ private class ReduceAction488
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction490
+private class ReduceAction529
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12170,7 +13751,7 @@ private class ReduceAction490
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction491
+private class ReduceAction530
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12182,7 +13763,7 @@ private class ReduceAction491
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction492
+private class ReduceAction531
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12195,7 +13776,7 @@ private class ReduceAction492
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction494
+private class ReduceAction533
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12209,7 +13790,7 @@ private class ReduceAction494
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction496
+private class ReduceAction535
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12220,7 +13801,7 @@ private class ReduceAction496
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction497
+private class ReduceAction536
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12228,7 +13809,7 @@ private class ReduceAction497
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction500
+private class ReduceAction539
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12238,7 +13819,7 @@ private class ReduceAction500
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction871
+private class ReduceAction961
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12262,7 +13843,7 @@ private class ReduceAction871
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction873
+private class ReduceAction963
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12282,7 +13863,7 @@ private class ReduceAction873
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction874
+private class ReduceAction964
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12309,7 +13890,7 @@ private class ReduceAction874
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction875
+private class ReduceAction965
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12337,7 +13918,7 @@ private class ReduceAction875
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction876
+private class ReduceAction966
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12372,7 +13953,7 @@ private class ReduceAction876
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction877
+private class ReduceAction967
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12408,7 +13989,7 @@ private class ReduceAction877
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction878
+private class ReduceAction968
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12447,7 +14028,7 @@ private class ReduceAction878
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction879
+private class ReduceAction969
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12487,7 +14068,7 @@ private class ReduceAction879
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction880
+private class ReduceAction970
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12523,7 +14104,7 @@ private class ReduceAction880
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction881
+private class ReduceAction971
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12560,7 +14141,7 @@ private class ReduceAction881
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction884
+private class ReduceAction974
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12583,7 +14164,7 @@ private class ReduceAction884
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction885
+private class ReduceAction975
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12607,7 +14188,7 @@ private class ReduceAction885
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction909
+private class ReduceAction999
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12620,7 +14201,28 @@ private class ReduceAction909
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction910
+private class ReduceAction1000
+       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 ReduceAction1001
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12630,7 +14232,7 @@ private class ReduceAction910
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1078
+private class ReduceAction1185
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12645,7 +14247,7 @@ private class ReduceAction1078
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1079
+private class ReduceAction1186
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12664,7 +14266,7 @@ private class ReduceAction1079
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1080
+private class ReduceAction1187
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12679,7 +14281,7 @@ private class ReduceAction1080
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1081
+private class ReduceAction1188
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12698,7 +14300,7 @@ private class ReduceAction1081
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1082
+private class ReduceAction1189
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12713,7 +14315,7 @@ private class ReduceAction1082
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1083
+private class ReduceAction1190
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12732,7 +14334,7 @@ private class ReduceAction1083
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1085
+private class ReduceAction1192
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12751,7 +14353,7 @@ private class ReduceAction1085
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1087
+private class ReduceAction1194
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12770,7 +14372,7 @@ private class ReduceAction1087
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1089
+private class ReduceAction1196
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12789,7 +14391,7 @@ private class ReduceAction1089
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1090
+private class ReduceAction1197
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12804,7 +14406,7 @@ private class ReduceAction1090
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1091
+private class ReduceAction1198
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12823,7 +14425,7 @@ private class ReduceAction1091
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1092
+private class ReduceAction1199
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12838,7 +14440,7 @@ private class ReduceAction1092
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1093
+private class ReduceAction1200
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12857,7 +14459,7 @@ private class ReduceAction1093
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1095
+private class ReduceAction1202
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12876,7 +14478,7 @@ private class ReduceAction1095
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1097
+private class ReduceAction1204
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12895,7 +14497,7 @@ private class ReduceAction1097
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1103
+private class ReduceAction1210
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12913,7 +14515,7 @@ private class ReduceAction1103
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1111
+private class ReduceAction1218
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12932,7 +14534,7 @@ private class ReduceAction1111
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1112
+private class ReduceAction1219
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12947,7 +14549,7 @@ private class ReduceAction1112
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1113
+private class ReduceAction1220
        super ReduceAction
        redef fun action(p: Parser)
        do