parser: add Parser::concat to factorize code
[nit.git] / src / parser / parser.nit
index 6b01634..62b5ccc 100644 (file)
@@ -146,8 +146,9 @@ special ParserTable
                                var node = new Start(null, node2)
                                return node
                        end
+                       if false then break # FIXME remove once unreach loop exits are in c_src
                end
-               abort
+               abort # FIXME remove once unreach loop exits are in c_src
        end
 
        var _reduce_table: Array[ReduceAction]
@@ -818,537 +819,7 @@ special ParserTable
                        new ReduceAction661,
                        new ReduceAction662,
                        new ReduceAction663,
-                       new ReduceAction664,
-                       new ReduceAction665,
-                       new ReduceAction666,
-                       new ReduceAction667,
-                       new ReduceAction668,
-                       new ReduceAction669,
-                       new ReduceAction670,
-                       new ReduceAction671,
-                       new ReduceAction672,
-                       new ReduceAction673,
-                       new ReduceAction674,
-                       new ReduceAction675,
-                       new ReduceAction676,
-                       new ReduceAction677,
-                       new ReduceAction678,
-                       new ReduceAction679,
-                       new ReduceAction680,
-                       new ReduceAction681,
-                       new ReduceAction682,
-                       new ReduceAction683,
-                       new ReduceAction684,
-                       new ReduceAction685,
-                       new ReduceAction686,
-                       new ReduceAction687,
-                       new ReduceAction688,
-                       new ReduceAction689,
-                       new ReduceAction690,
-                       new ReduceAction691,
-                       new ReduceAction692,
-                       new ReduceAction693,
-                       new ReduceAction694,
-                       new ReduceAction695,
-                       new ReduceAction696,
-                       new ReduceAction697,
-                       new ReduceAction698,
-                       new ReduceAction699,
-                       new ReduceAction700,
-                       new ReduceAction701,
-                       new ReduceAction702,
-                       new ReduceAction703,
-                       new ReduceAction704,
-                       new ReduceAction705,
-                       new ReduceAction706,
-                       new ReduceAction707,
-                       new ReduceAction708,
-                       new ReduceAction709,
-                       new ReduceAction710,
-                       new ReduceAction711,
-                       new ReduceAction712,
-                       new ReduceAction713,
-                       new ReduceAction714,
-                       new ReduceAction715,
-                       new ReduceAction716,
-                       new ReduceAction717,
-                       new ReduceAction718,
-                       new ReduceAction719,
-                       new ReduceAction720,
-                       new ReduceAction721,
-                       new ReduceAction722,
-                       new ReduceAction723,
-                       new ReduceAction724,
-                       new ReduceAction725,
-                       new ReduceAction726,
-                       new ReduceAction727,
-                       new ReduceAction728,
-                       new ReduceAction729,
-                       new ReduceAction730,
-                       new ReduceAction731,
-                       new ReduceAction732,
-                       new ReduceAction733,
-                       new ReduceAction734,
-                       new ReduceAction735,
-                       new ReduceAction736,
-                       new ReduceAction737,
-                       new ReduceAction738,
-                       new ReduceAction739,
-                       new ReduceAction740,
-                       new ReduceAction741,
-                       new ReduceAction742,
-                       new ReduceAction743,
-                       new ReduceAction744,
-                       new ReduceAction745,
-                       new ReduceAction746,
-                       new ReduceAction747,
-                       new ReduceAction748,
-                       new ReduceAction749,
-                       new ReduceAction750,
-                       new ReduceAction751,
-                       new ReduceAction752,
-                       new ReduceAction753,
-                       new ReduceAction754,
-                       new ReduceAction755,
-                       new ReduceAction756,
-                       new ReduceAction757,
-                       new ReduceAction758,
-                       new ReduceAction759,
-                       new ReduceAction760,
-                       new ReduceAction761,
-                       new ReduceAction762,
-                       new ReduceAction763,
-                       new ReduceAction764,
-                       new ReduceAction765,
-                       new ReduceAction766,
-                       new ReduceAction767,
-                       new ReduceAction768,
-                       new ReduceAction769,
-                       new ReduceAction770,
-                       new ReduceAction771,
-                       new ReduceAction772,
-                       new ReduceAction773,
-                       new ReduceAction774,
-                       new ReduceAction775,
-                       new ReduceAction776,
-                       new ReduceAction777,
-                       new ReduceAction778,
-                       new ReduceAction779,
-                       new ReduceAction780,
-                       new ReduceAction781,
-                       new ReduceAction782,
-                       new ReduceAction783,
-                       new ReduceAction784,
-                       new ReduceAction785,
-                       new ReduceAction786,
-                       new ReduceAction787,
-                       new ReduceAction788,
-                       new ReduceAction789,
-                       new ReduceAction790,
-                       new ReduceAction791,
-                       new ReduceAction792,
-                       new ReduceAction793,
-                       new ReduceAction794,
-                       new ReduceAction795,
-                       new ReduceAction796,
-                       new ReduceAction797,
-                       new ReduceAction798,
-                       new ReduceAction799,
-                       new ReduceAction800,
-                       new ReduceAction801,
-                       new ReduceAction802,
-                       new ReduceAction803,
-                       new ReduceAction804,
-                       new ReduceAction805,
-                       new ReduceAction806,
-                       new ReduceAction807,
-                       new ReduceAction808,
-                       new ReduceAction809,
-                       new ReduceAction810,
-                       new ReduceAction811,
-                       new ReduceAction812,
-                       new ReduceAction813,
-                       new ReduceAction814,
-                       new ReduceAction815,
-                       new ReduceAction816,
-                       new ReduceAction817,
-                       new ReduceAction818,
-                       new ReduceAction819,
-                       new ReduceAction820,
-                       new ReduceAction821,
-                       new ReduceAction822,
-                       new ReduceAction823,
-                       new ReduceAction824,
-                       new ReduceAction825,
-                       new ReduceAction826,
-                       new ReduceAction827,
-                       new ReduceAction828,
-                       new ReduceAction829,
-                       new ReduceAction830,
-                       new ReduceAction831,
-                       new ReduceAction832,
-                       new ReduceAction833,
-                       new ReduceAction834,
-                       new ReduceAction835,
-                       new ReduceAction836,
-                       new ReduceAction837,
-                       new ReduceAction838,
-                       new ReduceAction839,
-                       new ReduceAction840,
-                       new ReduceAction841,
-                       new ReduceAction842,
-                       new ReduceAction843,
-                       new ReduceAction844,
-                       new ReduceAction845,
-                       new ReduceAction846,
-                       new ReduceAction847,
-                       new ReduceAction848,
-                       new ReduceAction849,
-                       new ReduceAction850,
-                       new ReduceAction851,
-                       new ReduceAction852,
-                       new ReduceAction853,
-                       new ReduceAction854,
-                       new ReduceAction855,
-                       new ReduceAction856,
-                       new ReduceAction857,
-                       new ReduceAction858,
-                       new ReduceAction859,
-                       new ReduceAction860,
-                       new ReduceAction861,
-                       new ReduceAction862,
-                       new ReduceAction863,
-                       new ReduceAction864,
-                       new ReduceAction865,
-                       new ReduceAction866,
-                       new ReduceAction867,
-                       new ReduceAction868,
-                       new ReduceAction869,
-                       new ReduceAction870,
-                       new ReduceAction871,
-                       new ReduceAction872,
-                       new ReduceAction873,
-                       new ReduceAction874,
-                       new ReduceAction875,
-                       new ReduceAction876,
-                       new ReduceAction877,
-                       new ReduceAction878,
-                       new ReduceAction879,
-                       new ReduceAction880,
-                       new ReduceAction881,
-                       new ReduceAction882,
-                       new ReduceAction883,
-                       new ReduceAction884,
-                       new ReduceAction885,
-                       new ReduceAction886,
-                       new ReduceAction887,
-                       new ReduceAction888,
-                       new ReduceAction889,
-                       new ReduceAction890,
-                       new ReduceAction891,
-                       new ReduceAction892,
-                       new ReduceAction893,
-                       new ReduceAction894,
-                       new ReduceAction895,
-                       new ReduceAction896,
-                       new ReduceAction897,
-                       new ReduceAction898,
-                       new ReduceAction899,
-                       new ReduceAction900,
-                       new ReduceAction901,
-                       new ReduceAction902,
-                       new ReduceAction903,
-                       new ReduceAction904,
-                       new ReduceAction905,
-                       new ReduceAction906,
-                       new ReduceAction907,
-                       new ReduceAction908,
-                       new ReduceAction909,
-                       new ReduceAction910,
-                       new ReduceAction911,
-                       new ReduceAction912,
-                       new ReduceAction913,
-                       new ReduceAction914,
-                       new ReduceAction915,
-                       new ReduceAction916,
-                       new ReduceAction917,
-                       new ReduceAction918,
-                       new ReduceAction919,
-                       new ReduceAction920,
-                       new ReduceAction921,
-                       new ReduceAction922,
-                       new ReduceAction923,
-                       new ReduceAction924,
-                       new ReduceAction925,
-                       new ReduceAction926,
-                       new ReduceAction927,
-                       new ReduceAction928,
-                       new ReduceAction929,
-                       new ReduceAction930,
-                       new ReduceAction931,
-                       new ReduceAction932,
-                       new ReduceAction933,
-                       new ReduceAction934,
-                       new ReduceAction935,
-                       new ReduceAction936,
-                       new ReduceAction937,
-                       new ReduceAction938,
-                       new ReduceAction939,
-                       new ReduceAction940,
-                       new ReduceAction941,
-                       new ReduceAction942,
-                       new ReduceAction943,
-                       new ReduceAction944,
-                       new ReduceAction945,
-                       new ReduceAction946,
-                       new ReduceAction947,
-                       new ReduceAction948,
-                       new ReduceAction949,
-                       new ReduceAction950,
-                       new ReduceAction951,
-                       new ReduceAction952,
-                       new ReduceAction953,
-                       new ReduceAction954,
-                       new ReduceAction955,
-                       new ReduceAction956,
-                       new ReduceAction957,
-                       new ReduceAction958,
-                       new ReduceAction959,
-                       new ReduceAction960,
-                       new ReduceAction961,
-                       new ReduceAction962,
-                       new ReduceAction963,
-                       new ReduceAction964,
-                       new ReduceAction965,
-                       new ReduceAction966,
-                       new ReduceAction967,
-                       new ReduceAction968,
-                       new ReduceAction969,
-                       new ReduceAction970,
-                       new ReduceAction971,
-                       new ReduceAction972,
-                       new ReduceAction973,
-                       new ReduceAction974,
-                       new ReduceAction975,
-                       new ReduceAction976,
-                       new ReduceAction977,
-                       new ReduceAction978,
-                       new ReduceAction979,
-                       new ReduceAction980,
-                       new ReduceAction981,
-                       new ReduceAction982,
-                       new ReduceAction983,
-                       new ReduceAction984,
-                       new ReduceAction985,
-                       new ReduceAction986,
-                       new ReduceAction987,
-                       new ReduceAction988,
-                       new ReduceAction989,
-                       new ReduceAction990,
-                       new ReduceAction991,
-                       new ReduceAction992,
-                       new ReduceAction993,
-                       new ReduceAction994,
-                       new ReduceAction995,
-                       new ReduceAction996,
-                       new ReduceAction997,
-                       new ReduceAction998,
-                       new ReduceAction999,
-                       new ReduceAction1000,
-                       new ReduceAction1001,
-                       new ReduceAction1002,
-                       new ReduceAction1003,
-                       new ReduceAction1004,
-                       new ReduceAction1005,
-                       new ReduceAction1006,
-                       new ReduceAction1007,
-                       new ReduceAction1008,
-                       new ReduceAction1009,
-                       new ReduceAction1010,
-                       new ReduceAction1011,
-                       new ReduceAction1012,
-                       new ReduceAction1013,
-                       new ReduceAction1014,
-                       new ReduceAction1015,
-                       new ReduceAction1016,
-                       new ReduceAction1017,
-                       new ReduceAction1018,
-                       new ReduceAction1019,
-                       new ReduceAction1020,
-                       new ReduceAction1021,
-                       new ReduceAction1022,
-                       new ReduceAction1023,
-                       new ReduceAction1024,
-                       new ReduceAction1025,
-                       new ReduceAction1026,
-                       new ReduceAction1027,
-                       new ReduceAction1028,
-                       new ReduceAction1029,
-                       new ReduceAction1030,
-                       new ReduceAction1031,
-                       new ReduceAction1032,
-                       new ReduceAction1033,
-                       new ReduceAction1034,
-                       new ReduceAction1035,
-                       new ReduceAction1036,
-                       new ReduceAction1037,
-                       new ReduceAction1038,
-                       new ReduceAction1039,
-                       new ReduceAction1040,
-                       new ReduceAction1041,
-                       new ReduceAction1042,
-                       new ReduceAction1043,
-                       new ReduceAction1044,
-                       new ReduceAction1045,
-                       new ReduceAction1046,
-                       new ReduceAction1047,
-                       new ReduceAction1048,
-                       new ReduceAction1049,
-                       new ReduceAction1050,
-                       new ReduceAction1051,
-                       new ReduceAction1052,
-                       new ReduceAction1053,
-                       new ReduceAction1054,
-                       new ReduceAction1055,
-                       new ReduceAction1056,
-                       new ReduceAction1057,
-                       new ReduceAction1058,
-                       new ReduceAction1059,
-                       new ReduceAction1060,
-                       new ReduceAction1061,
-                       new ReduceAction1062,
-                       new ReduceAction1063,
-                       new ReduceAction1064,
-                       new ReduceAction1065,
-                       new ReduceAction1066,
-                       new ReduceAction1067,
-                       new ReduceAction1068,
-                       new ReduceAction1069,
-                       new ReduceAction1070,
-                       new ReduceAction1071,
-                       new ReduceAction1072,
-                       new ReduceAction1073,
-                       new ReduceAction1074,
-                       new ReduceAction1075,
-                       new ReduceAction1076,
-                       new ReduceAction1077,
-                       new ReduceAction1078,
-                       new ReduceAction1079,
-                       new ReduceAction1080,
-                       new ReduceAction1081,
-                       new ReduceAction1082,
-                       new ReduceAction1083,
-                       new ReduceAction1084,
-                       new ReduceAction1085,
-                       new ReduceAction1086,
-                       new ReduceAction1087,
-                       new ReduceAction1088,
-                       new ReduceAction1089,
-                       new ReduceAction1090,
-                       new ReduceAction1091,
-                       new ReduceAction1092,
-                       new ReduceAction1093,
-                       new ReduceAction1094,
-                       new ReduceAction1095,
-                       new ReduceAction1096,
-                       new ReduceAction1097,
-                       new ReduceAction1098,
-                       new ReduceAction1099,
-                       new ReduceAction1100,
-                       new ReduceAction1101,
-                       new ReduceAction1102,
-                       new ReduceAction1103,
-                       new ReduceAction1104,
-                       new ReduceAction1105,
-                       new ReduceAction1106,
-                       new ReduceAction1107,
-                       new ReduceAction1108,
-                       new ReduceAction1109,
-                       new ReduceAction1110,
-                       new ReduceAction1111,
-                       new ReduceAction1112,
-                       new ReduceAction1113,
-                       new ReduceAction1114,
-                       new ReduceAction1115,
-                       new ReduceAction1116,
-                       new ReduceAction1117,
-                       new ReduceAction1118,
-                       new ReduceAction1119,
-                       new ReduceAction1120,
-                       new ReduceAction1121,
-                       new ReduceAction1122,
-                       new ReduceAction1123,
-                       new ReduceAction1124,
-                       new ReduceAction1125,
-                       new ReduceAction1126,
-                       new ReduceAction1127,
-                       new ReduceAction1128,
-                       new ReduceAction1129,
-                       new ReduceAction1130,
-                       new ReduceAction1131,
-                       new ReduceAction1132,
-                       new ReduceAction1133,
-                       new ReduceAction1134,
-                       new ReduceAction1135,
-                       new ReduceAction1136,
-                       new ReduceAction1137,
-                       new ReduceAction1138,
-                       new ReduceAction1139,
-                       new ReduceAction1140,
-                       new ReduceAction1141,
-                       new ReduceAction1142,
-                       new ReduceAction1143,
-                       new ReduceAction1144,
-                       new ReduceAction1145,
-                       new ReduceAction1146,
-                       new ReduceAction1147,
-                       new ReduceAction1148,
-                       new ReduceAction1149,
-                       new ReduceAction1150,
-                       new ReduceAction1151,
-                       new ReduceAction1152,
-                       new ReduceAction1153,
-                       new ReduceAction1154,
-                       new ReduceAction1155,
-                       new ReduceAction1156,
-                       new ReduceAction1157,
-                       new ReduceAction1158,
-                       new ReduceAction1159,
-                       new ReduceAction1160,
-                       new ReduceAction1161,
-                       new ReduceAction1162,
-                       new ReduceAction1163,
-                       new ReduceAction1164,
-                       new ReduceAction1165,
-                       new ReduceAction1166,
-                       new ReduceAction1167,
-                       new ReduceAction1168,
-                       new ReduceAction1169,
-                       new ReduceAction1170,
-                       new ReduceAction1171,
-                       new ReduceAction1172,
-                       new ReduceAction1173,
-                       new ReduceAction1174,
-                       new ReduceAction1175,
-                       new ReduceAction1176,
-                       new ReduceAction1177,
-                       new ReduceAction1178,
-                       new ReduceAction1179,
-                       new ReduceAction1180,
-                       new ReduceAction1181,
-                       new ReduceAction1182,
-                       new ReduceAction1183,
-                       new ReduceAction1184,
-                       new ReduceAction1185,
-                       new ReduceAction1186,
-                       new ReduceAction1187,
-                       new ReduceAction1188,
-                       new ReduceAction1189,
-                       new ReduceAction1190,
-                       new ReduceAction1191,
-                       new ReduceAction1192,
-                       new ReduceAction1193,
-                       new ReduceAction1194
+                       new ReduceAction664
                )
        end
 end
@@ -1453,6 +924,12 @@ end
 # Each reduca action has its own class, this one is the root of the hierarchy.
 private abstract class ReduceAction
        fun action(p: Parser) is abstract
+       fun concat(l1, l2 : Array[Object]): Array[Object]
+       do
+               if l1.is_empty then return l2
+               l1.append(l2)
+               return l1
+       end
 end
 
 private class ReduceAction0
@@ -1502,13 +979,7 @@ special ReduceAction
                                        var listnode5 = new Array[Object]
                                        var listnode3 = nodearraylist1
                                        assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       listnode4 = concat(listnode4, listnode3)
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode4,
@@ -1532,13 +1003,7 @@ special ReduceAction
                                        assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       listnode4 = concat(listnode4, listnode3)
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                ppackagedeclnode2,
                                                listnode4,
@@ -1559,13 +1024,7 @@ special ReduceAction
                                        var listnode5 = new Array[Object]
                                        var listnode4 = nodearraylist1
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode3,
@@ -1589,13 +1048,7 @@ special ReduceAction
                                        assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                ppackagedeclnode2,
                                                listnode3,
@@ -1617,22 +1070,10 @@ special ReduceAction
                                        var listnode6 = new Array[Object]
                                        var listnode3 = nodearraylist1
                                        assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       listnode4 = concat(listnode4, listnode3)
                                        var listnode5 = nodearraylist2
                                        assert listnode5 isa Array[Object]
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
+                                       listnode6 = concat(listnode6, listnode5)
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode4,
@@ -1657,22 +1098,10 @@ special ReduceAction
                                        assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       listnode4 = concat(listnode4, listnode3)
                                        var listnode5 = nodearraylist3
                                        assert listnode5 isa Array[Object]
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
+                                       listnode6 = concat(listnode6, listnode5)
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                ppackagedeclnode2,
                                                listnode4,
@@ -1688,16 +1117,13 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
                                        var listnode7 = new Array[Object]
                                        var listnode6 = new Array[Object]
-                                       var ppropdefnode5 = nodearraylist1
-                                       assert ppropdefnode5 isa nullable APropdef
-                                       if ppropdefnode5 != null then
-                                               listnode6.add(ppropdefnode5)
-                                       end
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
                                        var pclassdefnode4: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
                                                listnode6
                                        )
@@ -1719,36 +1145,26 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
-                                       var listnode8 = new Array[Object]
                                        var listnode7 = new Array[Object]
-                                       var ppropdefnode5 = nodearraylist1
-                                       assert ppropdefnode5 isa nullable APropdef
-                                       var listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-                                       if ppropdefnode5 != null then
-                                               listnode7.add(ppropdefnode5)
-                                       end
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist2
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
                                        var pclassdefnode4: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode7
+                                               listnode6
                                        )
                                        if pclassdefnode4 != null then
-                                               listnode8.add(pclassdefnode4)
+                                               listnode7.add(pclassdefnode4)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
+                                               ppackagedeclnode2,
                                                listnode3,
-                                               listnode8
+                                               listnode7
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(0), node_list)
@@ -1760,29 +1176,27 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
+                                       var listnode4 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var listnode3 = nodearraylist1
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
                                        var listnode7 = new Array[Object]
-                                       var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable APackagedecl
-                                       var listnode6 = new Array[Object]
-                                       var ppropdefnode5 = nodearraylist2
-                                       assert ppropdefnode5 isa nullable APropdef
-                                       if ppropdefnode5 != null then
-                                               listnode6.add(ppropdefnode5)
-                                       end
-                                       var pclassdefnode4: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode6
+                                       var listnode6 = nodearraylist2
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
+                                               listnode7
                                        )
-                                       if pclassdefnode4 != null then
-                                               listnode7.add(pclassdefnode4)
+                                       if pclassdefnode5 != null then
+                                               listnode8.add(pclassdefnode5)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               ppackagedeclnode2,
-                                               listnode3,
-                                               listnode7
+                                               null,
+                                               listnode4,
+                                               listnode8
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(0), node_list)
@@ -1794,38 +1208,29 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
+                                       var listnode4 = new Array[Object]
                                        var listnode8 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
                                        assert ppackagedeclnode2 isa nullable APackagedecl
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
                                        var listnode7 = new Array[Object]
-                                       var ppropdefnode5 = nodearraylist2
-                                       assert ppropdefnode5 isa nullable APropdef
-                                       var listnode6 = nodearraylist4
+                                       var listnode6 = nodearraylist3
                                        assert listnode6 isa Array[Object]
-                                       if ppropdefnode5 != null then
-                                               listnode7.add(ppropdefnode5)
-                                       end
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
-                                       var pclassdefnode4: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
                                                listnode7
                                        )
-                                       if pclassdefnode4 != null then
-                                               listnode8.add(pclassdefnode4)
+                                       if pclassdefnode5 != null then
+                                               listnode8.add(pclassdefnode5)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                ppackagedeclnode2,
-                                               listnode3,
+                                               listnode4,
                                                listnode8
                                        )
                                        node_list = pmodulenode1
@@ -1838,35 +1243,26 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
+                                       var listnode3 = new Array[Object]
                                        var listnode8 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       var listnode4 = nodearraylist1
+                                       assert listnode4 isa Array[Object]
                                        var listnode7 = new Array[Object]
-                                       var ppropdefnode6 = nodearraylist2
-                                       assert ppropdefnode6 isa nullable APropdef
-                                       if ppropdefnode6 != null then
-                                               listnode7.add(ppropdefnode6)
-                                       end
+                                       var listnode6 = nodearraylist2
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
                                        var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
                                                listnode7
                                        )
+                                       listnode8 = concat(listnode8, listnode4)
                                        if pclassdefnode5 != null then
                                                listnode8.add(pclassdefnode5)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
-                                               listnode4,
+                                               listnode3,
                                                listnode8
                                        )
                                        node_list = pmodulenode1
@@ -1879,46 +1275,30 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       var listnode3 = new Array[Object]
                                        var listnode8 = new Array[Object]
-                                       var ppropdefnode6 = nodearraylist2
-                                       assert ppropdefnode6 isa nullable APropdef
-                                       var listnode7 = nodearraylist4
-                                       assert listnode7 isa Array[Object]
-                                       if ppropdefnode6 != null then
-                                               listnode8.add(ppropdefnode6)
-                                       end
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist3
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
                                        var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
+                                               listnode7
                                        )
+                                       listnode8 = concat(listnode8, listnode4)
                                        if pclassdefnode5 != null then
-                                               listnode9.add(pclassdefnode5)
+                                               listnode8.add(pclassdefnode5)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode9
+                                               ppackagedeclnode2,
+                                               listnode3,
+                                               listnode8
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(0), node_list)
@@ -1930,39 +1310,31 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable APackagedecl
-                                       var listnode3 = nodearraylist2
+                                       var listnode9 = new Array[Object]
+                                       var listnode3 = nodearraylist1
                                        assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var listnode7 = new Array[Object]
-                                       var ppropdefnode6 = nodearraylist3
-                                       assert ppropdefnode6 isa nullable APropdef
-                                       if ppropdefnode6 != null then
-                                               listnode7.add(ppropdefnode6)
-                                       end
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode7
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var listnode5 = nodearraylist2
+                                       assert listnode5 isa Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist3
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
+                                               listnode8
                                        )
-                                       if pclassdefnode5 != null then
-                                               listnode8.add(pclassdefnode5)
+                                       listnode9 = concat(listnode9, listnode5)
+                                       if pclassdefnode6 != null then
+                                               listnode9.add(pclassdefnode6)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               ppackagedeclnode2,
+                                               null,
                                                listnode4,
-                                               listnode8
+                                               listnode9
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(0), node_list)
@@ -1974,7 +1346,6 @@ special 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
@@ -1985,33 +1356,19 @@ special ReduceAction
                                        assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var listnode5 = nodearraylist3
+                                       assert listnode5 isa Array[Object]
                                        var listnode8 = new Array[Object]
-                                       var ppropdefnode6 = nodearraylist3
-                                       assert ppropdefnode6 isa nullable APropdef
-                                       var listnode7 = nodearraylist5
+                                       var listnode7 = nodearraylist4
                                        assert listnode7 isa Array[Object]
-                                       if ppropdefnode6 != null then
-                                               listnode8.add(ppropdefnode6)
-                                       end
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
                                                listnode8
                                        )
-                                       if pclassdefnode5 != null then
-                                               listnode9.add(pclassdefnode5)
+                                       listnode9 = concat(listnode9, listnode5)
+                                       if pclassdefnode6 != null then
+                                               listnode9.add(pclassdefnode6)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                ppackagedeclnode2,
@@ -2028,36 +1385,18 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode4 = nodearraylist1
-                                       assert listnode4 isa Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var ppropdefnode6 = nodearraylist2
-                                       assert ppropdefnode6 isa nullable APropdef
-                                       if ppropdefnode6 != null then
-                                               listnode7.add(ppropdefnode6)
-                                       end
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode7
-                                       )
-#                                      if listnode4 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode4
-                                               else
-                                                       listnode8.append(listnode4)
-                                               end
-#                                      end
-                                       if pclassdefnode5 != null then
-                                               listnode8.add(pclassdefnode5)
+                                       var listnode5 = new Array[Object]
+                                       var pclassdefnode4 = nodearraylist1
+                                       assert pclassdefnode4 isa nullable AClassdef
+                                       if pclassdefnode4 != null then
+                                               listnode5.add(pclassdefnode4)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode3,
-                                               listnode8
+                                               listnode5
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(0), node_list)
@@ -2069,310 +1408,166 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode4 = nodearraylist1
-                                       assert listnode4 isa Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var ppropdefnode6 = nodearraylist2
-                                       assert ppropdefnode6 isa nullable APropdef
-                                       var listnode7 = nodearraylist4
-                                       assert listnode7 isa Array[Object]
-                                       if ppropdefnode6 != null then
-                                               listnode8.add(ppropdefnode6)
+                                       var listnode5 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
+                                       var pclassdefnode4 = nodearraylist2
+                                       assert pclassdefnode4 isa nullable AClassdef
+                                       if pclassdefnode4 != null then
+                                               listnode5.add(pclassdefnode4)
                                        end
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
+                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
+                                               ppackagedeclnode2,
+                                               listnode3,
+                                               listnode5
                                        )
-#                                      if listnode4 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode4
-                                               else
-                                                       listnode9.append(listnode4)
-                                               end
-#                                      end
+                                       node_list = pmodulenode1
+                                       p.push(p.go_to(0), node_list)
+       end
+init do end
+end
+private class ReduceAction18
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var listnode3 = nodearraylist1
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var pclassdefnode5 = nodearraylist2
+                                       assert pclassdefnode5 isa nullable AClassdef
                                        if pclassdefnode5 != null then
-                                               listnode9.add(pclassdefnode5)
+                                               listnode6.add(pclassdefnode5)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
-                                               listnode3,
-                                               listnode9
+                                               listnode4,
+                                               listnode6
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(0), node_list)
        end
 init do end
 end
-private class ReduceAction18
+private class ReduceAction19
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode8 = new Array[Object]
+                                       var listnode4 = new Array[Object]
+                                       var listnode6 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
                                        assert ppackagedeclnode2 isa nullable APackagedecl
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var ppropdefnode6 = nodearraylist3
-                                       assert ppropdefnode6 isa nullable APropdef
-                                       if ppropdefnode6 != null then
-                                               listnode7.add(ppropdefnode6)
-                                       end
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode7
-                                       )
-#                                      if listnode4 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode4
-                                               else
-                                                       listnode8.append(listnode4)
-                                               end
-#                                      end
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var pclassdefnode5 = nodearraylist3
+                                       assert pclassdefnode5 isa nullable AClassdef
                                        if pclassdefnode5 != null then
-                                               listnode8.add(pclassdefnode5)
+                                               listnode6.add(pclassdefnode5)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                ppackagedeclnode2,
-                                               listnode3,
-                                               listnode8
+                                               listnode4,
+                                               listnode6
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(0), node_list)
        end
 init do end
 end
-private class ReduceAction19
+private class ReduceAction20
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable APackagedecl
-                                       var listnode4 = nodearraylist2
+                                       var listnode6 = new Array[Object]
+                                       var listnode4 = nodearraylist1
                                        assert listnode4 isa Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var ppropdefnode6 = nodearraylist3
-                                       assert ppropdefnode6 isa nullable APropdef
-                                       var listnode7 = nodearraylist5
-                                       assert listnode7 isa Array[Object]
-                                       if ppropdefnode6 != null then
-                                               listnode8.add(ppropdefnode6)
-                                       end
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-#                                      if listnode4 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode4
-                                               else
-                                                       listnode9.append(listnode4)
-                                               end
-#                                      end
+                                       var pclassdefnode5 = nodearraylist2
+                                       assert pclassdefnode5 isa nullable AClassdef
+                                       listnode6 = concat(listnode6, listnode4)
                                        if pclassdefnode5 != null then
-                                               listnode9.add(pclassdefnode5)
+                                               listnode6.add(pclassdefnode5)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               ppackagedeclnode2,
+                                               null,
                                                listnode3,
-                                               listnode9
+                                               listnode6
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(0), node_list)
        end
 init do end
 end
-private class ReduceAction20
+private class ReduceAction21
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var listnode5 = nodearraylist2
-                                       assert listnode5 isa Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var ppropdefnode7 = nodearraylist3
-                                       assert ppropdefnode7 isa nullable APropdef
-                                       if ppropdefnode7 != null then
-                                               listnode8.add(ppropdefnode7)
-                                       end
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-#                                      if listnode5 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode5
-                                               else
-                                                       listnode9.append(listnode5)
-                                               end
-#                                      end
-                                       if pclassdefnode6 != null then
-                                               listnode9.add(pclassdefnode6)
+                                       var listnode3 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var ppackagedeclnode2 = nodearraylist1
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       var pclassdefnode5 = nodearraylist3
+                                       assert pclassdefnode5 isa nullable AClassdef
+                                       listnode6 = concat(listnode6, listnode4)
+                                       if pclassdefnode5 != null then
+                                               listnode6.add(pclassdefnode5)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode9
+                                               ppackagedeclnode2,
+                                               listnode3,
+                                               listnode6
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(0), node_list)
        end
 init do end
 end
-private class ReduceAction21
+private class ReduceAction22
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
-                                       var listnode10 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var listnode3 = nodearraylist1
                                        assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       listnode4 = concat(listnode4, listnode3)
                                        var listnode5 = nodearraylist2
                                        assert listnode5 isa Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var ppropdefnode7 = nodearraylist3
-                                       assert ppropdefnode7 isa nullable APropdef
-                                       var listnode8 = nodearraylist5
-                                       assert listnode8 isa Array[Object]
-                                       if ppropdefnode7 != null then
-                                               listnode9.add(ppropdefnode7)
-                                       end
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-#                                      end
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-#                                      if listnode5 != null then
-                                               if listnode10.is_empty then
-                                                       listnode10 = listnode5
-                                               else
-                                                       listnode10.append(listnode5)
-                                               end
-#                                      end
+                                       var pclassdefnode6 = nodearraylist3
+                                       assert pclassdefnode6 isa nullable AClassdef
+                                       listnode7 = concat(listnode7, listnode5)
                                        if pclassdefnode6 != null then
-                                               listnode10.add(pclassdefnode6)
+                                               listnode7.add(pclassdefnode6)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode4,
-                                               listnode10
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
-       end
-init do end
-end
-private class ReduceAction22
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable APackagedecl
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var listnode5 = nodearraylist3
-                                       assert listnode5 isa Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var ppropdefnode7 = nodearraylist4
-                                       assert ppropdefnode7 isa nullable APropdef
-                                       if ppropdefnode7 != null then
-                                               listnode8.add(ppropdefnode7)
-                                       end
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-#                                      if listnode5 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode5
-                                               else
-                                                       listnode9.append(listnode5)
-                                               end
-#                                      end
-                                       if pclassdefnode6 != null then
-                                               listnode9.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               ppackagedeclnode2,
-                                               listnode4,
-                                               listnode9
+                                               listnode7
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(0), node_list)
@@ -2384,59 +1579,29 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
-                                       var listnode10 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
                                        assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       listnode4 = concat(listnode4, listnode3)
                                        var listnode5 = nodearraylist3
                                        assert listnode5 isa Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var ppropdefnode7 = nodearraylist4
-                                       assert ppropdefnode7 isa nullable APropdef
-                                       var listnode8 = nodearraylist6
-                                       assert listnode8 isa Array[Object]
-                                       if ppropdefnode7 != null then
-                                               listnode9.add(ppropdefnode7)
-                                       end
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-#                                      end
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-#                                      if listnode5 != null then
-                                               if listnode10.is_empty then
-                                                       listnode10 = listnode5
-                                               else
-                                                       listnode10.append(listnode5)
-                                               end
-#                                      end
+                                       var pclassdefnode6 = nodearraylist4
+                                       assert pclassdefnode6 isa nullable AClassdef
+                                       listnode7 = concat(listnode7, listnode5)
                                        if pclassdefnode6 != null then
-                                               listnode10.add(pclassdefnode6)
+                                               listnode7.add(pclassdefnode6)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                ppackagedeclnode2,
                                                listnode4,
-                                               listnode10
+                                               listnode7
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(0), node_list)
@@ -2448,18 +1613,29 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var pclassdefnode4 = nodearraylist1
-                                       assert pclassdefnode4 isa nullable AClassdef
+                                       var listnode8 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pclassdefnode4: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
+                                               listnode6
+                                       )
+                                       var pclassdefnode7 = nodearraylist2
+                                       assert pclassdefnode7 isa nullable AClassdef
                                        if pclassdefnode4 != null then
-                                               listnode5.add(pclassdefnode4)
+                                               listnode8.add(pclassdefnode4)
+                                       end
+                                       if pclassdefnode7 != null then
+                                               listnode8.add(pclassdefnode7)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode3,
-                                               listnode5
+                                               listnode8
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(0), node_list)
@@ -2471,21 +1647,32 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
+                                       var listnode8 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
                                        assert ppackagedeclnode2 isa nullable APackagedecl
-                                       var pclassdefnode4 = nodearraylist2
-                                       assert pclassdefnode4 isa nullable AClassdef
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist2
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pclassdefnode4: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
+                                               listnode6
+                                       )
+                                       var pclassdefnode7 = nodearraylist3
+                                       assert pclassdefnode7 isa nullable AClassdef
                                        if pclassdefnode4 != null then
-                                               listnode5.add(pclassdefnode4)
+                                               listnode8.add(pclassdefnode4)
+                                       end
+                                       if pclassdefnode7 != null then
+                                               listnode8.add(pclassdefnode7)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                ppackagedeclnode2,
                                                listnode3,
-                                               listnode5
+                                               listnode8
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(0), node_list)
@@ -2497,28 +1684,33 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
+                                       var listnode9 = new Array[Object]
                                        var listnode3 = nodearraylist1
                                        assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var pclassdefnode5 = nodearraylist2
-                                       assert pclassdefnode5 isa nullable AClassdef
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist2
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
+                                               listnode7
+                                       )
+                                       var pclassdefnode8 = nodearraylist3
+                                       assert pclassdefnode8 isa nullable AClassdef
                                        if pclassdefnode5 != null then
-                                               listnode6.add(pclassdefnode5)
+                                               listnode9.add(pclassdefnode5)
+                                       end
+                                       if pclassdefnode8 != null then
+                                               listnode9.add(pclassdefnode8)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode4,
-                                               listnode6
+                                               listnode9
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(0), node_list)
@@ -2530,31 +1722,36 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
+                                       var listnode9 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
                                        assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var pclassdefnode5 = nodearraylist3
-                                       assert pclassdefnode5 isa nullable AClassdef
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist3
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
+                                               listnode7
+                                       )
+                                       var pclassdefnode8 = nodearraylist4
+                                       assert pclassdefnode8 isa nullable AClassdef
                                        if pclassdefnode5 != null then
-                                               listnode6.add(pclassdefnode5)
+                                               listnode9.add(pclassdefnode5)
+                                       end
+                                       if pclassdefnode8 != null then
+                                               listnode9.add(pclassdefnode8)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                ppackagedeclnode2,
                                                listnode4,
-                                               listnode6
+                                               listnode9
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(0), node_list)
@@ -2566,28 +1763,33 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
-                                       var listnode6 = new Array[Object]
+                                       var listnode9 = new Array[Object]
                                        var listnode4 = nodearraylist1
                                        assert listnode4 isa Array[Object]
-                                       var pclassdefnode5 = nodearraylist2
-                                       assert pclassdefnode5 isa nullable AClassdef
-#                                      if listnode4 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode4
-                                               else
-                                                       listnode6.append(listnode4)
-                                               end
-#                                      end
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist2
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
+                                               listnode7
+                                       )
+                                       var pclassdefnode8 = nodearraylist3
+                                       assert pclassdefnode8 isa nullable AClassdef
+                                       listnode9 = concat(listnode9, listnode4)
                                        if pclassdefnode5 != null then
-                                               listnode6.add(pclassdefnode5)
+                                               listnode9.add(pclassdefnode5)
+                                       end
+                                       if pclassdefnode8 != null then
+                                               listnode9.add(pclassdefnode8)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode3,
-                                               listnode6
+                                               listnode9
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(0), node_list)
@@ -2599,31 +1801,36 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
-                                       var listnode6 = new Array[Object]
+                                       var listnode9 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
                                        assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
-                                       var pclassdefnode5 = nodearraylist3
-                                       assert pclassdefnode5 isa nullable AClassdef
-#                                      if listnode4 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode4
-                                               else
-                                                       listnode6.append(listnode4)
-                                               end
-#                                      end
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist3
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
+                                               listnode7
+                                       )
+                                       var pclassdefnode8 = nodearraylist4
+                                       assert pclassdefnode8 isa nullable AClassdef
+                                       listnode9 = concat(listnode9, listnode4)
                                        if pclassdefnode5 != null then
-                                               listnode6.add(pclassdefnode5)
+                                               listnode9.add(pclassdefnode5)
+                                       end
+                                       if pclassdefnode8 != null then
+                                               listnode9.add(pclassdefnode8)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                ppackagedeclnode2,
                                                listnode3,
-                                               listnode6
+                                               listnode9
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(0), node_list)
@@ -2635,38 +1842,37 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
-                                       var listnode7 = new Array[Object]
+                                       var listnode10 = new Array[Object]
                                        var listnode3 = nodearraylist1
                                        assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       listnode4 = concat(listnode4, listnode3)
                                        var listnode5 = nodearraylist2
                                        assert listnode5 isa Array[Object]
-                                       var pclassdefnode6 = nodearraylist3
-                                       assert pclassdefnode6 isa nullable AClassdef
-#                                      if listnode5 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode5
-                                               else
-                                                       listnode7.append(listnode5)
-                                               end
-#                                      end
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist3
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
+                                               listnode8
+                                       )
+                                       var pclassdefnode9 = nodearraylist4
+                                       assert pclassdefnode9 isa nullable AClassdef
+                                       listnode10 = concat(listnode10, listnode5)
                                        if pclassdefnode6 != null then
-                                               listnode7.add(pclassdefnode6)
+                                               listnode10.add(pclassdefnode6)
+                                       end
+                                       if pclassdefnode9 != null then
+                                               listnode10.add(pclassdefnode9)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode4,
-                                               listnode7
+                                               listnode10
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(0), node_list)
@@ -2678,41 +1884,40 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
-                                       var listnode7 = new Array[Object]
+                                       var listnode10 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
                                        assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       listnode4 = concat(listnode4, listnode3)
                                        var listnode5 = nodearraylist3
                                        assert listnode5 isa Array[Object]
-                                       var pclassdefnode6 = nodearraylist4
-                                       assert pclassdefnode6 isa nullable AClassdef
-#                                      if listnode5 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode5
-                                               else
-                                                       listnode7.append(listnode5)
-                                               end
-#                                      end
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist4
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
+                                               listnode8
+                                       )
+                                       var pclassdefnode9 = nodearraylist5
+                                       assert pclassdefnode9 isa nullable AClassdef
+                                       listnode10 = concat(listnode10, listnode5)
                                        if pclassdefnode6 != null then
-                                               listnode7.add(pclassdefnode6)
+                                               listnode10.add(pclassdefnode6)
+                                       end
+                                       if pclassdefnode9 != null then
+                                               listnode10.add(pclassdefnode9)
                                        end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                ppackagedeclnode2,
                                                listnode4,
-                                               listnode7
+                                               listnode10
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(0), node_list)
@@ -2724,35 +1929,24 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var ppropdefnode5 = nodearraylist1
-                                       assert ppropdefnode5 isa nullable APropdef
-                                       if ppropdefnode5 != null then
-                                               listnode6.add(ppropdefnode5)
-                                       end
-                                       var pclassdefnode4: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode6
-                                       )
-                                       var pclassdefnode7 = nodearraylist3
-                                       assert pclassdefnode7 isa nullable AClassdef
-                                       if pclassdefnode4 != null then
-                                               listnode8.add(pclassdefnode4)
-                                       end
-                                       if pclassdefnode7 != null then
-                                               listnode8.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode8
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwpackagenode3 = nodearraylist2
+                                       assert tkwpackagenode3 isa nullable TKwpackage
+                                       var tidnode4 = nodearraylist4
+                                       assert tidnode4 isa nullable TId
+                                       var ppackagedeclnode1: nullable APackagedecl = new APackagedecl.init_apackagedecl(
+                                               pdocnode2,
+                                               tkwpackagenode3,
+                                               tidnode4
                                        )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       node_list = ppackagedeclnode1
+                                       p.push(p.go_to(1), node_list)
        end
 init do end
 end
@@ -2761,45 +1955,25 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var ppropdefnode5 = nodearraylist1
-                                       assert ppropdefnode5 isa nullable APropdef
-                                       var listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-                                       if ppropdefnode5 != null then
-                                               listnode7.add(ppropdefnode5)
-                                       end
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
-                                       var pclassdefnode4: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode7
-                                       )
-                                       var pclassdefnode8 = nodearraylist4
-                                       assert pclassdefnode8 isa nullable AClassdef
-                                       if pclassdefnode4 != null then
-                                               listnode9.add(pclassdefnode4)
-                                       end
-                                       if pclassdefnode8 != null then
-                                               listnode9.add(pclassdefnode8)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode9
+                                       var pvisibilitynode2 = nodearraylist2
+                                       assert pvisibilitynode2 isa nullable AVisibility
+                                       var tkwimportnode3 = nodearraylist3
+                                       assert tkwimportnode3 isa nullable TKwimport
+                                       var tidnode4 = nodearraylist5
+                                       assert tidnode4 isa nullable TId
+                                       var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode3,
+                                               tidnode4
                                        )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       node_list = pimportnode1
+                                       p.push(p.go_to(2), node_list)
        end
 init do end
 end
@@ -2808,38 +1982,25 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable APackagedecl
-                                       var listnode6 = new Array[Object]
-                                       var ppropdefnode5 = nodearraylist2
-                                       assert ppropdefnode5 isa nullable APropdef
-                                       if ppropdefnode5 != null then
-                                               listnode6.add(ppropdefnode5)
-                                       end
-                                       var pclassdefnode4: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode6
-                                       )
-                                       var pclassdefnode7 = nodearraylist4
-                                       assert pclassdefnode7 isa nullable AClassdef
-                                       if pclassdefnode4 != null then
-                                               listnode8.add(pclassdefnode4)
-                                       end
-                                       if pclassdefnode7 != null then
-                                               listnode8.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               ppackagedeclnode2,
-                                               listnode3,
-                                               listnode8
+                                       var pvisibilitynode2 = nodearraylist2
+                                       assert pvisibilitynode2 isa nullable AVisibility
+                                       var tkwimportnode3 = nodearraylist3
+                                       assert tkwimportnode3 isa nullable TKwimport
+                                       var tkwendnode4 = nodearraylist5
+                                       assert tkwendnode4 isa nullable TKwend
+                                       var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode3,
+                                               tkwendnode4
                                        )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       node_list = pimportnode1
+                                       p.push(p.go_to(2), node_list)
        end
 init do end
 end
@@ -2848,48 +2009,18 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable APackagedecl
-                                       var listnode7 = new Array[Object]
-                                       var ppropdefnode5 = nodearraylist2
-                                       assert ppropdefnode5 isa nullable APropdef
-                                       var listnode6 = nodearraylist4
-                                       assert listnode6 isa Array[Object]
-                                       if ppropdefnode5 != null then
-                                               listnode7.add(ppropdefnode5)
-                                       end
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
-                                       var pclassdefnode4: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode7
-                                       )
-                                       var pclassdefnode8 = nodearraylist5
-                                       assert pclassdefnode8 isa nullable AClassdef
-                                       if pclassdefnode4 != null then
-                                               listnode9.add(pclassdefnode4)
-                                       end
-                                       if pclassdefnode8 != null then
-                                               listnode9.add(pclassdefnode8)
+                                       var ppropdefnode2 = nodearraylist1
+                                       assert ppropdefnode2 isa nullable APropdef
+                                       if ppropdefnode2 != null then
+                                               listnode3.add(ppropdefnode2)
                                        end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               ppackagedeclnode2,
-                                               listnode3,
-                                               listnode9
+                                       var pclassdefnode1: nullable AMainClassdef = new AMainClassdef.init_amainclassdef(
+                                               listnode3
                                        )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(3), node_list)
        end
 init do end
 end
@@ -2898,618 +2029,445 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       node_list = null
+                                       p.push(p.go_to(3), node_list)
+       end
+init do end
+end
+private class ReduceAction37
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var listnode7 = new Array[Object]
-                                       var ppropdefnode6 = nodearraylist2
-                                       assert ppropdefnode6 isa nullable APropdef
-                                       if ppropdefnode6 != null then
-                                               listnode7.add(ppropdefnode6)
-                                       end
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode7
-                                       )
-                                       var pclassdefnode8 = nodearraylist4
-                                       assert pclassdefnode8 isa nullable AClassdef
-                                       if pclassdefnode5 != null then
-                                               listnode9.add(pclassdefnode5)
-                                       end
-                                       if pclassdefnode8 != null then
-                                               listnode9.add(pclassdefnode8)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMainMethPropdef = new AMainMethPropdef.init_amainmethpropdef(
                                                null,
-                                               listnode4,
-                                               listnode9
+                                               pexprnode3
                                        )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(4), node_list)
        end
 init do end
 end
-private class ReduceAction37
+private class ReduceAction38
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var listnode8 = new Array[Object]
-                                       var ppropdefnode6 = nodearraylist2
-                                       assert ppropdefnode6 isa nullable APropdef
-                                       var listnode7 = nodearraylist4
-                                       assert listnode7 isa Array[Object]
-                                       if ppropdefnode6 != null then
-                                               listnode8.add(ppropdefnode6)
-                                       end
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       var pclassdefnode9 = nodearraylist5
-                                       assert pclassdefnode9 isa nullable AClassdef
-                                       if pclassdefnode5 != null then
-                                               listnode10.add(pclassdefnode5)
-                                       end
-                                       if pclassdefnode9 != null then
-                                               listnode10.add(pclassdefnode9)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMainMethPropdef = new AMainMethPropdef.init_amainmethpropdef(
                                                null,
-                                               listnode4,
-                                               listnode10
+                                               pexprnode3
                                        )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(4), node_list)
        end
 init do end
 end
-private class ReduceAction38
+private class ReduceAction39
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable APackagedecl
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
                                        var listnode7 = new Array[Object]
-                                       var ppropdefnode6 = nodearraylist3
-                                       assert ppropdefnode6 isa nullable APropdef
-                                       if ppropdefnode6 != null then
-                                               listnode7.add(ppropdefnode6)
-                                       end
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode7
-                                       )
-                                       var pclassdefnode8 = nodearraylist5
-                                       assert pclassdefnode8 isa nullable AClassdef
-                                       if pclassdefnode5 != null then
-                                               listnode9.add(pclassdefnode5)
-                                       end
-                                       if pclassdefnode8 != null then
-                                               listnode9.add(pclassdefnode8)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               ppackagedeclnode2,
-                                               listnode4,
+                                       var listnode8 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               listnode8,
                                                listnode9
                                        )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
        end
 init do end
 end
-private class ReduceAction39
+private class ReduceAction40
 special 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 listnode4 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable APackagedecl
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       var listnode7 = new Array[Object]
                                        var listnode8 = new Array[Object]
-                                       var ppropdefnode6 = nodearraylist3
-                                       assert ppropdefnode6 isa nullable APropdef
-                                       var listnode7 = nodearraylist5
-                                       assert listnode7 isa Array[Object]
-                                       if ppropdefnode6 != null then
-                                               listnode8.add(ppropdefnode6)
-                                       end
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       var pclassdefnode9 = nodearraylist6
-                                       assert pclassdefnode9 isa nullable AClassdef
-                                       if pclassdefnode5 != null then
-                                               listnode10.add(pclassdefnode5)
-                                       end
-                                       if pclassdefnode9 != null then
-                                               listnode10.add(pclassdefnode9)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               ppackagedeclnode2,
-                                               listnode4,
-                                               listnode10
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               listnode8,
+                                               listnode9
                                        )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
        end
 init do end
 end
-private class ReduceAction40
+private class ReduceAction41
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
+                                       var listnode8 = new Array[Object]
                                        var listnode9 = new Array[Object]
-                                       var listnode4 = nodearraylist1
-                                       assert listnode4 isa Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var ppropdefnode6 = nodearraylist2
-                                       assert ppropdefnode6 isa nullable APropdef
-                                       if ppropdefnode6 != null then
-                                               listnode7.add(ppropdefnode6)
-                                       end
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode7
-                                       )
-                                       var pclassdefnode8 = nodearraylist4
-                                       assert pclassdefnode8 isa nullable AClassdef
-#                                      if listnode4 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode4
-                                               else
-                                                       listnode9.append(listnode4)
-                                               end
-#                                      end
-                                       if pclassdefnode5 != null then
-                                               listnode9.add(pclassdefnode5)
-                                       end
-                                       if pclassdefnode8 != null then
-                                               listnode9.add(pclassdefnode8)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
+                                       var listnode10 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist6
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
                                                null,
-                                               listnode3,
-                                               listnode9
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               listnode9,
+                                               listnode10
                                        )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
        end
 init do end
 end
-private class ReduceAction41
+private class ReduceAction42
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode4 = nodearraylist1
-                                       assert listnode4 isa Array[Object]
                                        var listnode8 = new Array[Object]
-                                       var ppropdefnode6 = nodearraylist2
-                                       assert ppropdefnode6 isa nullable APropdef
-                                       var listnode7 = nodearraylist4
+                                       var listnode9 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
                                        assert listnode7 isa Array[Object]
-                                       if ppropdefnode6 != null then
-                                               listnode8.add(ppropdefnode6)
-                                       end
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       var pclassdefnode9 = nodearraylist5
-                                       assert pclassdefnode9 isa nullable AClassdef
-#                                      if listnode4 != null then
-                                               if listnode10.is_empty then
-                                                       listnode10 = listnode4
-                                               else
-                                                       listnode10.append(listnode4)
-                                               end
-#                                      end
-                                       if pclassdefnode5 != null then
-                                               listnode10.add(pclassdefnode5)
-                                       end
-                                       if pclassdefnode9 != null then
-                                               listnode10.add(pclassdefnode9)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               listnode9,
                                                listnode10
                                        )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
        end
 init do end
 end
-private class ReduceAction42
+private class ReduceAction43
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable APackagedecl
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
                                        var listnode7 = new Array[Object]
-                                       var ppropdefnode6 = nodearraylist3
-                                       assert ppropdefnode6 isa nullable APropdef
-                                       if ppropdefnode6 != null then
-                                               listnode7.add(ppropdefnode6)
-                                       end
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode7
-                                       )
-                                       var pclassdefnode8 = nodearraylist5
-                                       assert pclassdefnode8 isa nullable AClassdef
-#                                      if listnode4 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode4
-                                               else
-                                                       listnode9.append(listnode4)
-                                               end
-#                                      end
-                                       if pclassdefnode5 != null then
-                                               listnode9.add(pclassdefnode5)
-                                       end
-                                       if pclassdefnode8 != null then
-                                               listnode9.add(pclassdefnode8)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               ppackagedeclnode2,
-                                               listnode3,
-                                               listnode9
+                                       var listnode9 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               listnode9,
+                                               listnode10
                                        )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
        end
 init do end
 end
-private class ReduceAction43
+private class ReduceAction44
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var listnode9 = new Array[Object]
                                        var listnode10 = new Array[Object]
-                                       var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable APackagedecl
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var ppropdefnode6 = nodearraylist3
-                                       assert ppropdefnode6 isa nullable APropdef
-                                       var listnode7 = nodearraylist5
-                                       assert listnode7 isa Array[Object]
-                                       if ppropdefnode6 != null then
-                                               listnode8.add(ppropdefnode6)
-                                       end
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       var pclassdefnode9 = nodearraylist6
-                                       assert pclassdefnode9 isa nullable AClassdef
-#                                      if listnode4 != null then
-                                               if listnode10.is_empty then
-                                                       listnode10 = listnode4
-                                               else
-                                                       listnode10.append(listnode4)
-                                               end
-#                                      end
-                                       if pclassdefnode5 != null then
-                                               listnode10.add(pclassdefnode5)
-                                       end
-                                       if pclassdefnode9 != null then
-                                               listnode10.add(pclassdefnode9)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               ppackagedeclnode2,
-                                               listnode3,
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode8 = nodearraylist7
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               listnode9,
                                                listnode10
                                        )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
        end
 init do end
 end
-private class ReduceAction44
+private class ReduceAction45
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
+                                       var listnode8 = new Array[Object]
                                        var listnode10 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var listnode5 = nodearraylist2
-                                       assert listnode5 isa Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var ppropdefnode7 = nodearraylist3
-                                       assert ppropdefnode7 isa nullable APropdef
-                                       if ppropdefnode7 != null then
-                                               listnode8.add(ppropdefnode7)
-                                       end
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       var pclassdefnode9 = nodearraylist5
-                                       assert pclassdefnode9 isa nullable AClassdef
-#                                      if listnode5 != null then
-                                               if listnode10.is_empty then
-                                                       listnode10 = listnode5
-                                               else
-                                                       listnode10.append(listnode5)
-                                               end
-#                                      end
-                                       if pclassdefnode6 != null then
-                                               listnode10.add(pclassdefnode6)
-                                       end
-                                       if pclassdefnode9 != null then
-                                               listnode10.add(pclassdefnode9)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
+                                       var listnode11 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist6
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode9 = nodearraylist7
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
                                                null,
-                                               listnode4,
-                                               listnode10
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               listnode10,
+                                               listnode11
                                        )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
        end
 init do end
 end
-private class ReduceAction45
+private class ReduceAction46
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var listnode10 = new Array[Object]
                                        var listnode11 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var listnode5 = nodearraylist2
-                                       assert listnode5 isa Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var ppropdefnode7 = nodearraylist3
-                                       assert ppropdefnode7 isa nullable APropdef
-                                       var listnode8 = nodearraylist5
-                                       assert listnode8 isa Array[Object]
-                                       if ppropdefnode7 != null then
-                                               listnode9.add(ppropdefnode7)
-                                       end
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-#                                      end
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-                                       var pclassdefnode10 = nodearraylist6
-                                       assert pclassdefnode10 isa nullable AClassdef
-#                                      if listnode5 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode5
-                                               else
-                                                       listnode11.append(listnode5)
-                                               end
-#                                      end
-                                       if pclassdefnode6 != null then
-                                               listnode11.add(pclassdefnode6)
-                                       end
-                                       if pclassdefnode10 != null then
-                                               listnode11.add(pclassdefnode10)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode9 = nodearraylist8
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               listnode10,
                                                listnode11
                                        )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
        end
 init do end
 end
-private class ReduceAction46
+private class ReduceAction47
 special 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 listnode4 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable APackagedecl
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var listnode5 = nodearraylist3
-                                       assert listnode5 isa Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var listnode8 = new Array[Object]
-                                       var ppropdefnode7 = nodearraylist4
-                                       assert ppropdefnode7 isa nullable APropdef
-                                       if ppropdefnode7 != null then
-                                               listnode8.add(ppropdefnode7)
-                                       end
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       var pclassdefnode9 = nodearraylist6
-                                       assert pclassdefnode9 isa nullable AClassdef
-#                                      if listnode5 != null then
-                                               if listnode10.is_empty then
-                                                       listnode10 = listnode5
-                                               else
-                                                       listnode10.append(listnode5)
-                                               end
-#                                      end
-                                       if pclassdefnode6 != null then
-                                               listnode10.add(pclassdefnode6)
-                                       end
-                                       if pclassdefnode9 != null then
-                                               listnode10.add(pclassdefnode9)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               ppackagedeclnode2,
-                                               listnode4,
+                                       var listnode10 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode9 = nodearraylist6
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               listnode8,
                                                listnode10
                                        )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
        end
 init do end
 end
-private class ReduceAction47
+private class ReduceAction48
 special 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
@@ -3517,291 +2475,101 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable APackagedecl
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var listnode5 = nodearraylist3
-                                       assert listnode5 isa Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var ppropdefnode7 = nodearraylist4
-                                       assert ppropdefnode7 isa nullable APropdef
-                                       var listnode8 = nodearraylist6
-                                       assert listnode8 isa Array[Object]
-                                       if ppropdefnode7 != null then
-                                               listnode9.add(ppropdefnode7)
-                                       end
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-#                                      end
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-                                       var pclassdefnode10 = nodearraylist7
-                                       assert pclassdefnode10 isa nullable AClassdef
-#                                      if listnode5 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode5
-                                               else
-                                                       listnode11.append(listnode5)
-                                               end
-#                                      end
-                                       if pclassdefnode6 != null then
-                                               listnode11.add(pclassdefnode6)
-                                       end
-                                       if pclassdefnode10 != null then
-                                               listnode11.add(pclassdefnode10)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               ppackagedeclnode2,
-                                               listnode4,
-                                               listnode11
+                                       var listnode7 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var listnode10 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode9 = nodearraylist7
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode7,
+                                               listnode8,
+                                               listnode10
                                        )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
        end
 init do end
 end
-private class ReduceAction48
+private class ReduceAction49
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode9 = new Array[Object]
+                                       var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwpackagenode3 = nodearraylist2
-                                       assert tkwpackagenode3 isa nullable TKwpackage
-                                       var tidnode4 = nodearraylist4
-                                       assert tidnode4 isa nullable TId
-                                       var ppackagedeclnode1: nullable APackagedecl = new APackagedecl.init_apackagedecl(
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var pclasskindnode5 = nodearraylist3
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist6
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode10 = nodearraylist7
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               tkwpackagenode3,
-                                               tidnode4
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               listnode9,
+                                               listnode11
                                        )
-                                       node_list = ppackagedeclnode1
-                                       p.push(p.go_to(1), node_list)
+                                       node_list = pclassdefnode1
+                                       p.push(p.go_to(5), node_list)
        end
 init do end
 end
-private class ReduceAction49
+private class ReduceAction50
 special 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 pvisibilitynode2 = nodearraylist2
-                                       assert pvisibilitynode2 isa nullable AVisibility
-                                       var tkwimportnode3 = nodearraylist3
-                                       assert tkwimportnode3 isa nullable TKwimport
-                                       var tidnode4 = nodearraylist5
-                                       assert tidnode4 isa nullable TId
-                                       var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
-                                               pvisibilitynode2,
-                                               tkwimportnode3,
-                                               tidnode4
-                                       )
-                                       node_list = pimportnode1
-                                       p.push(p.go_to(2), node_list)
-       end
-init do end
-end
-private class ReduceAction50
-special 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 pvisibilitynode2 = nodearraylist2
-                                       assert pvisibilitynode2 isa nullable AVisibility
-                                       var tkwimportnode3 = nodearraylist3
-                                       assert tkwimportnode3 isa nullable TKwimport
-                                       var tkwendnode4 = nodearraylist5
-                                       assert tkwendnode4 isa nullable TKwend
-                                       var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
-                                               pvisibilitynode2,
-                                               tkwimportnode3,
-                                               tkwendnode4
-                                       )
-                                       node_list = pimportnode1
-                                       p.push(p.go_to(2), node_list)
-       end
-init do end
-end
-private class ReduceAction51
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var ppropdefnode2 = nodearraylist1
-                                       assert ppropdefnode2 isa nullable APropdef
-                                       if ppropdefnode2 != null then
-                                               listnode3.add(ppropdefnode2)
-                                       end
-                                       var pclassdefnode1: nullable AMainClassdef = new AMainClassdef.init_amainclassdef(
-                                               listnode3
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(3), node_list)
-       end
-init do end
-end
-private class ReduceAction52
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       node_list = null
-                                       p.push(p.go_to(3), node_list)
-       end
-init do end
-end
-private class ReduceAction53
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode4 = nodearraylist2
-                                       assert pexprnode4 isa nullable AExpr
-                                       if pexprnode4 != null then
-                                               listnode5.add(pexprnode4)
-                                       end
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode5
-                                       )
-                                       var ppropdefnode1: nullable AMainMethPropdef = new AMainMethPropdef.init_amainmethpropdef(
-                                               null,
-                                               pexprnode3
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(4), node_list)
-       end
-init do end
-end
-private class ReduceAction54
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode4 = nodearraylist2
-                                       assert pexprnode4 isa nullable AExpr
-                                       var listnode5 = nodearraylist3
-                                       assert listnode5 isa Array[Object]
-                                       if pexprnode4 != null then
-                                               listnode6.add(pexprnode4)
-                                       end
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
-                                       )
-                                       var ppropdefnode1: nullable AMainMethPropdef = new AMainMethPropdef.init_amainmethpropdef(
-                                               null,
-                                               pexprnode3
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(4), node_list)
-       end
-init do end
-end
-private class ReduceAction55
-special 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 listnode7 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               listnode8,
-                                               listnode9
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
-       end
-init do end
-end
-private class ReduceAction56
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
                                        var listnode8 = new Array[Object]
                                        var listnode9 = new Array[Object]
+                                       var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -3812,26 +2580,33 @@ special ReduceAction
                                        assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode10 = nodearraylist8
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode7,
                                                listnode8,
-                                               listnode9
+                                               listnode9,
+                                               listnode11
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(5), node_list)
        end
 init do end
 end
-private class ReduceAction57
+private class ReduceAction51
 special 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
@@ -3840,9 +2615,9 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var listnode9 = new Array[Object]
-                                       var listnode10 = new Array[Object]
+                                       var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
@@ -3851,35 +2626,33 @@ special ReduceAction
                                        assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist5
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var listnode10 = nodearraylist7
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode8,
+                                               listnode7,
                                                listnode9,
-                                               listnode10
+                                               listnode11
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(5), node_list)
        end
 init do end
 end
-private class ReduceAction58
+private class ReduceAction52
 special 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
@@ -3889,9 +2662,9 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var listnode9 = new Array[Object]
-                                       var listnode10 = new Array[Object]
+                                       var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -3902,35 +2675,34 @@ special ReduceAction
                                        assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
+                                       var listnode8 = nodearraylist7
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var listnode10 = nodearraylist8
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode8,
+                                               listnode7,
                                                listnode9,
-                                               listnode10
+                                               listnode11
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(5), node_list)
        end
 init do end
 end
-private class ReduceAction59
+private class ReduceAction53
 special 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
@@ -3939,9 +2711,9 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode9 = new Array[Object]
+                                       var listnode8 = new Array[Object]
                                        var listnode10 = new Array[Object]
+                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
@@ -3950,35 +2722,37 @@ special ReduceAction
                                        assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist5
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode8 = nodearraylist6
-                                       assert listnode8 isa Array[Object]
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-#                                      end
+                                       var listnode7 = nodearraylist6
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode9 = nodearraylist7
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var listnode11 = nodearraylist8
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode7,
-                                               listnode9,
-                                               listnode10
+                                               listnode8,
+                                               listnode10,
+                                               listnode12
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(5), node_list)
        end
 init do end
 end
-private class ReduceAction60
+private class ReduceAction54
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -3988,9 +2762,9 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode9 = new Array[Object]
+                                       var listnode8 = new Array[Object]
                                        var listnode10 = new Array[Object]
+                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
@@ -4001,484 +2775,261 @@ special ReduceAction
                                        assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
-                                       var listnode8 = nodearraylist7
-                                       assert listnode8 isa Array[Object]
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-#                                      end
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode9 = nodearraylist8
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var listnode11 = nodearraylist9
+                                       assert listnode11 isa Array[Object]
+                                       listnode12 = concat(listnode12, listnode11)
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                pclasskindnode5,
                                                tclassidnode6,
-                                               listnode7,
-                                               listnode9,
-                                               listnode10
+                                               listnode8,
+                                               listnode10,
+                                               listnode12
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(5), node_list)
        end
 init do end
 end
-private class ReduceAction61
+private class ReduceAction55
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var listnode9 = nodearraylist7
-                                       assert listnode9 isa Array[Object]
-#                                      if listnode9 != null then
-                                               if listnode10.is_empty then
-                                                       listnode10 = listnode9
-                                               else
-                                                       listnode10.append(listnode9)
-                                               end
-#                                      end
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               listnode10,
-                                               listnode11
+                                       var tkwclassnode2 = nodearraylist1
+                                       assert tkwclassnode2 isa nullable TKwclass
+                                       var pclasskindnode1: nullable AConcreteClasskind = new AConcreteClasskind.init_aconcreteclasskind(
+                                               tkwclassnode2
                                        )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       node_list = pclasskindnode1
+                                       p.push(p.go_to(6), node_list)
        end
 init do end
 end
-private class ReduceAction62
+private class ReduceAction56
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var listnode9 = nodearraylist8
-                                       assert listnode9 isa Array[Object]
-#                                      if listnode9 != null then
-                                               if listnode10.is_empty then
-                                                       listnode10 = listnode9
-                                               else
-                                                       listnode10.append(listnode9)
-                                               end
-#                                      end
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               listnode10,
-                                               listnode11
+                                       var tkwabstractnode2 = nodearraylist1
+                                       assert tkwabstractnode2 isa nullable TKwabstract
+                                       var tkwclassnode3 = nodearraylist2
+                                       assert tkwclassnode3 isa nullable TKwclass
+                                       var pclasskindnode1: nullable AAbstractClasskind = new AAbstractClasskind.init_aabstractclasskind(
+                                               tkwabstractnode2,
+                                               tkwclassnode3
                                        )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       node_list = pclasskindnode1
+                                       p.push(p.go_to(6), node_list)
        end
 init do end
 end
-private class ReduceAction63
+private class ReduceAction57
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var ppropdefnode9 = nodearraylist6
-                                       assert ppropdefnode9 isa nullable APropdef
-                                       if ppropdefnode9 != null then
-                                               listnode10.add(ppropdefnode9)
-                                       end
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               listnode8,
-                                               listnode10
+                                       var tkwinterfacenode2 = nodearraylist1
+                                       assert tkwinterfacenode2 isa nullable TKwinterface
+                                       var pclasskindnode1: nullable AInterfaceClasskind = new AInterfaceClasskind.init_ainterfaceclasskind(
+                                               tkwinterfacenode2
                                        )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       node_list = pclasskindnode1
+                                       p.push(p.go_to(6), node_list)
        end
 init do end
 end
-private class ReduceAction64
+private class ReduceAction58
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var ppropdefnode9 = nodearraylist6
-                                       assert ppropdefnode9 isa nullable APropdef
-                                       var listnode10 = nodearraylist8
-                                       assert listnode10 isa Array[Object]
-                                       if ppropdefnode9 != null then
-                                               listnode11.add(ppropdefnode9)
-                                       end
-#                                      if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-#                                      end
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               listnode8,
-                                               listnode11
+                                       var tkwuniversalnode2 = nodearraylist1
+                                       assert tkwuniversalnode2 isa nullable TKwuniversal
+                                       var pclasskindnode1: nullable AUniversalClasskind = new AUniversalClasskind.init_auniversalclasskind(
+                                               tkwuniversalnode2
                                        )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       node_list = pclasskindnode1
+                                       p.push(p.go_to(6), node_list)
        end
 init do end
 end
-private class ReduceAction65
+private class ReduceAction59
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var ppropdefnode9 = nodearraylist7
-                                       assert ppropdefnode9 isa nullable APropdef
-                                       if ppropdefnode9 != null then
-                                               listnode10.add(ppropdefnode9)
+                                       var listnode2 = new Array[Object]
+                                       var pformaldefnode1 = nodearraylist3
+                                       assert pformaldefnode1 isa nullable AFormaldef
+                                       if pformaldefnode1 != null then
+                                               listnode2.add(pformaldefnode1)
                                        end
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               listnode8,
-                                               listnode10
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       node_list = listnode2
+                                       p.push(p.go_to(7), node_list)
        end
 init do end
 end
-private class ReduceAction66
+private class ReduceAction60
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var ppropdefnode9 = nodearraylist7
-                                       assert ppropdefnode9 isa nullable APropdef
-                                       var listnode10 = nodearraylist9
-                                       assert listnode10 isa Array[Object]
-                                       if ppropdefnode9 != null then
-                                               listnode11.add(ppropdefnode9)
+                                       var listnode3 = new Array[Object]
+                                       var pformaldefnode1 = nodearraylist3
+                                       assert pformaldefnode1 isa nullable AFormaldef
+                                       var listnode2 = nodearraylist4
+                                       assert listnode2 isa Array[Object]
+                                       if pformaldefnode1 != null then
+                                               listnode3.add(pformaldefnode1)
                                        end
-#                                      if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-#                                      end
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               listnode8,
-                                               listnode11
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
+                                       p.push(p.go_to(7), node_list)
        end
 init do end
 end
-private class ReduceAction67
+private class ReduceAction61
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var ppropdefnode10 = nodearraylist7
-                                       assert ppropdefnode10 isa nullable APropdef
-                                       if ppropdefnode10 != null then
-                                               listnode11.add(ppropdefnode10)
-                                       end
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
+                                       var pformaldefnode1 = nodearraylist3
+                                       assert pformaldefnode1 isa nullable AFormaldef
+                                       node_list = pformaldefnode1
+                                       p.push(p.go_to(8), node_list)
+       end
+init do end
+end
+private class ReduceAction62
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tclassidnode2 = nodearraylist1
+                                       assert tclassidnode2 isa nullable TClassid
+                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
+                                               tclassidnode2,
+                                               null
+                                       )
+                                       node_list = pformaldefnode1
+                                       p.push(p.go_to(9), node_list)
+       end
+init do end
+end
+private class ReduceAction63
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tclassidnode2 = nodearraylist1
+                                       assert tclassidnode2 isa nullable TClassid
+                                       var ptypenode3 = nodearraylist2
+                                       assert ptypenode3 isa nullable AType
+                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
+                                               tclassidnode2,
+                                               ptypenode3
+                                       )
+                                       node_list = pformaldefnode1
+                                       p.push(p.go_to(9), node_list)
+       end
+init do end
+end
+private class ReduceAction64
+special 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 tkwspecialnode2 = nodearraylist2
+                                       assert tkwspecialnode2 isa nullable TKwspecial
+                                       var ptypenode4 = nodearraylist4
+                                       assert ptypenode4 isa nullable AType
+                                       var psuperclassnode1: nullable ASuperclass = new ASuperclass.init_asuperclass(
+                                               tkwspecialnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               listnode9,
-                                               listnode11
+                                               ptypenode4
                                        )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       node_list = psuperclassnode1
+                                       p.push(p.go_to(10), node_list)
        end
 init do end
 end
-private class ReduceAction68
+private class ReduceAction65
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var ppropdefnode10 = nodearraylist7
-                                       assert ppropdefnode10 isa nullable APropdef
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       if ppropdefnode10 != null then
-                                               listnode12.add(ppropdefnode10)
-                                       end
-#                                      if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-#                                      end
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
+                                       var tkwsupernode3 = nodearraylist2
+                                       assert tkwsupernode3 isa nullable TKwsuper
+                                       var ptypenode4 = nodearraylist4
+                                       assert ptypenode4 isa nullable AType
+                                       var psuperclassnode1: nullable ASuperclass = new ASuperclass.init_asuperclass(
                                                null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               listnode9,
-                                               listnode12
+                                               tkwsupernode3,
+                                               ptypenode4
                                        )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       node_list = psuperclassnode1
+                                       p.push(p.go_to(10), node_list)
        end
 init do end
 end
-private class ReduceAction69
+private class ReduceAction66
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var ppropdefnode1 = nodearraylist1
+                                       assert ppropdefnode1 isa nullable APropdef
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(11), node_list)
+       end
+init do end
+end
+private class ReduceAction67
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -4486,57 +3037,37 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
+                                       var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var ppropdefnode10 = nodearraylist8
-                                       assert ppropdefnode10 isa nullable APropdef
-                                       if ppropdefnode10 != null then
-                                               listnode11.add(ppropdefnode10)
-                                       end
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               listnode9,
-                                               listnode11
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction70
+private class ReduceAction68
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -4545,64 +3076,39 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var ppropdefnode10 = nodearraylist8
-                                       assert ppropdefnode10 isa nullable APropdef
-                                       var listnode11 = nodearraylist10
-                                       assert listnode11 isa Array[Object]
-                                       if ppropdefnode10 != null then
-                                               listnode12.add(ppropdefnode10)
-                                       end
-#                                      if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-#                                      end
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               listnode9,
-                                               listnode12
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction71
+private class ReduceAction69
 special 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
@@ -4611,53 +3117,37 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode8 = nodearraylist6
-                                       assert listnode8 isa Array[Object]
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-#                                      end
-                                       var ppropdefnode10 = nodearraylist7
-                                       assert ppropdefnode10 isa nullable APropdef
-                                       if ppropdefnode10 != null then
-                                               listnode11.add(ppropdefnode10)
-                                       end
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               listnode9,
-                                               listnode11
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction72
+private class ReduceAction70
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -4667,63 +3157,39 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode8 = nodearraylist6
-                                       assert listnode8 isa Array[Object]
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-#                                      end
-                                       var ppropdefnode10 = nodearraylist7
-                                       assert ppropdefnode10 isa nullable APropdef
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       if ppropdefnode10 != null then
-                                               listnode12.add(ppropdefnode10)
-                                       end
-#                                      if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-#                                      end
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               listnode9,
-                                               listnode12
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction73
+private class ReduceAction71
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -4732,56 +3198,37 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
+                                       var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode8 = nodearraylist7
-                                       assert listnode8 isa Array[Object]
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-#                                      end
-                                       var ppropdefnode10 = nodearraylist8
-                                       assert ppropdefnode10 isa nullable APropdef
-                                       if ppropdefnode10 != null then
-                                               listnode11.add(ppropdefnode10)
-                                       end
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               listnode9,
-                                               listnode11
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction74
+private class ReduceAction72
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -4791,66 +3238,39 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode8 = nodearraylist7
-                                       assert listnode8 isa Array[Object]
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-#                                      end
-                                       var ppropdefnode10 = nodearraylist8
-                                       assert ppropdefnode10 isa nullable APropdef
-                                       var listnode11 = nodearraylist10
-                                       assert listnode11 isa Array[Object]
-                                       if ppropdefnode10 != null then
-                                               listnode12.add(ppropdefnode10)
-                                       end
-#                                      if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-#                                      end
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist9
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               listnode9,
-                                               listnode12
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction75
+private class ReduceAction73
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -4858,64 +3278,34 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var listnode9 = nodearraylist7
-                                       assert listnode9 isa Array[Object]
-#                                      if listnode9 != null then
-                                               if listnode10.is_empty then
-                                                       listnode10 = listnode9
-                                               else
-                                                       listnode10.append(listnode9)
-                                               end
-#                                      end
-                                       var ppropdefnode11 = nodearraylist8
-                                       assert ppropdefnode11 isa nullable APropdef
-                                       if ppropdefnode11 != null then
-                                               listnode12.add(ppropdefnode11)
-                                       end
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               listnode10,
-                                               listnode12
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7
                                        )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction76
+private class ReduceAction74
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -4924,74 +3314,36 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode13 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var listnode9 = nodearraylist7
-                                       assert listnode9 isa Array[Object]
-#                                      if listnode9 != null then
-                                               if listnode10.is_empty then
-                                                       listnode10 = listnode9
-                                               else
-                                                       listnode10.append(listnode9)
-                                               end
-#                                      end
-                                       var ppropdefnode11 = nodearraylist8
-                                       assert ppropdefnode11 isa nullable APropdef
-                                       var listnode12 = nodearraylist10
-                                       assert listnode12 isa Array[Object]
-                                       if ppropdefnode11 != null then
-                                               listnode13.add(ppropdefnode11)
-                                       end
-#                                      if listnode12 != null then
-                                               if listnode13.is_empty then
-                                                       listnode13 = listnode12
-                                               else
-                                                       listnode13.append(listnode12)
-                                               end
-#                                      end
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               listnode10,
-                                               listnode13
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7
                                        )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction77
+private class ReduceAction75
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -4999,67 +3351,34 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
+                                       var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var listnode9 = nodearraylist8
-                                       assert listnode9 isa Array[Object]
-#                                      if listnode9 != null then
-                                               if listnode10.is_empty then
-                                                       listnode10 = listnode9
-                                               else
-                                                       listnode10.append(listnode9)
-                                               end
-#                                      end
-                                       var ppropdefnode11 = nodearraylist9
-                                       assert ppropdefnode11 isa nullable APropdef
-                                       if ppropdefnode11 != null then
-                                               listnode12.add(ppropdefnode11)
-                                       end
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               listnode10,
-                                               listnode12
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7
                                        )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction78
+private class ReduceAction76
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -5068,275 +3387,32 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode13 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var listnode9 = nodearraylist8
-                                       assert listnode9 isa Array[Object]
-#                                      if listnode9 != null then
-                                               if listnode10.is_empty then
-                                                       listnode10 = listnode9
-                                               else
-                                                       listnode10.append(listnode9)
-                                               end
-#                                      end
-                                       var ppropdefnode11 = nodearraylist9
-                                       assert ppropdefnode11 isa nullable APropdef
-                                       var listnode12 = nodearraylist11
-                                       assert listnode12 isa Array[Object]
-                                       if ppropdefnode11 != null then
-                                               listnode13.add(ppropdefnode11)
-                                       end
-#                                      if listnode12 != null then
-                                               if listnode13.is_empty then
-                                                       listnode13 = listnode12
-                                               else
-                                                       listnode13.append(listnode12)
-                                               end
-#                                      end
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               listnode10,
-                                               listnode13
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7
                                        )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
-       end
-init do end
-end
-private class ReduceAction79
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwclassnode2 = nodearraylist1
-                                       assert tkwclassnode2 isa nullable TKwclass
-                                       var pclasskindnode1: nullable AConcreteClasskind = new AConcreteClasskind.init_aconcreteclasskind(
-                                               tkwclassnode2
-                                       )
-                                       node_list = pclasskindnode1
-                                       p.push(p.go_to(6), node_list)
-       end
-init do end
-end
-private class ReduceAction80
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwabstractnode2 = nodearraylist1
-                                       assert tkwabstractnode2 isa nullable TKwabstract
-                                       var tkwclassnode3 = nodearraylist2
-                                       assert tkwclassnode3 isa nullable TKwclass
-                                       var pclasskindnode1: nullable AAbstractClasskind = new AAbstractClasskind.init_aabstractclasskind(
-                                               tkwabstractnode2,
-                                               tkwclassnode3
-                                       )
-                                       node_list = pclasskindnode1
-                                       p.push(p.go_to(6), node_list)
-       end
-init do end
-end
-private class ReduceAction81
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwinterfacenode2 = nodearraylist1
-                                       assert tkwinterfacenode2 isa nullable TKwinterface
-                                       var pclasskindnode1: nullable AInterfaceClasskind = new AInterfaceClasskind.init_ainterfaceclasskind(
-                                               tkwinterfacenode2
-                                       )
-                                       node_list = pclasskindnode1
-                                       p.push(p.go_to(6), node_list)
-       end
-init do end
-end
-private class ReduceAction82
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwuniversalnode2 = nodearraylist1
-                                       assert tkwuniversalnode2 isa nullable TKwuniversal
-                                       var pclasskindnode1: nullable AUniversalClasskind = new AUniversalClasskind.init_auniversalclasskind(
-                                               tkwuniversalnode2
-                                       )
-                                       node_list = pclasskindnode1
-                                       p.push(p.go_to(6), node_list)
-       end
-init do end
-end
-private class ReduceAction83
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pformaldefnode1 = nodearraylist3
-                                       assert pformaldefnode1 isa nullable AFormaldef
-                                       if pformaldefnode1 != null then
-                                               listnode2.add(pformaldefnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(7), node_list)
-       end
-init do end
-end
-private class ReduceAction84
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pformaldefnode1 = nodearraylist3
-                                       assert pformaldefnode1 isa nullable AFormaldef
-                                       var listnode2 = nodearraylist4
-                                       assert listnode2 isa Array[Object]
-                                       if pformaldefnode1 != null then
-                                               listnode3.add(pformaldefnode1)
-                                       end
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       node_list = listnode3
-                                       p.push(p.go_to(7), node_list)
-       end
-init do end
-end
-private class ReduceAction85
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pformaldefnode1 = nodearraylist3
-                                       assert pformaldefnode1 isa nullable AFormaldef
-                                       node_list = pformaldefnode1
-                                       p.push(p.go_to(8), node_list)
-       end
-init do end
-end
-private class ReduceAction86
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa nullable TClassid
-                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
-                                               tclassidnode2,
-                                               null
-                                       )
-                                       node_list = pformaldefnode1
-                                       p.push(p.go_to(9), node_list)
-       end
-init do end
-end
-private class ReduceAction87
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa nullable TClassid
-                                       var ptypenode3 = nodearraylist2
-                                       assert ptypenode3 isa nullable AType
-                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
-                                               tclassidnode2,
-                                               ptypenode3
-                                       )
-                                       node_list = pformaldefnode1
-                                       p.push(p.go_to(9), node_list)
-       end
-init do end
-end
-private class ReduceAction88
-special 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 tkwspecialnode2 = nodearraylist2
-                                       assert tkwspecialnode2 isa nullable TKwspecial
-                                       var ptypenode3 = nodearraylist4
-                                       assert ptypenode3 isa nullable AType
-                                       var psuperclassnode1: nullable ASuperclass = new ASuperclass.init_asuperclass(
-                                               tkwspecialnode2,
-                                               ptypenode3
-                                       )
-                                       node_list = psuperclassnode1
-                                       p.push(p.go_to(10), node_list)
-       end
-init do end
-end
-private class ReduceAction89
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var ppropdefnode1 = nodearraylist1
-                                       assert ppropdefnode1 isa nullable APropdef
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(11), node_list)
+                                       p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction90
+private class ReduceAction77
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -5354,34 +3430,30 @@ special ReduceAction
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwmethnode5 = nodearraylist3
                                        assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
                                                tkwmethnode5,
                                                pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               psignaturenode7,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction91
+private class ReduceAction78
 special 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
@@ -5391,38 +3463,36 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
+                                       var tkwmethnode5 = nodearraylist4
                                        assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist4
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
                                                tkwmethnode5,
                                                pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               psignaturenode7,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction92
+private class ReduceAction79
 special 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
@@ -5436,34 +3506,33 @@ special ReduceAction
                                        assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwmethnode5 = nodearraylist3
                                        assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist4
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var tstringnode8 = nodearraylist8
+                                       assert tstringnode8 isa nullable TString
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
                                                tkwmethnode5,
                                                pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               psignaturenode7,
+                                               tstringnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction93
+private class ReduceAction80
 special 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
@@ -5473,81 +3542,70 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
+                                       var tkwmethnode5 = nodearraylist4
                                        assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist4
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var tstringnode8 = nodearraylist9
+                                       assert tstringnode8 isa nullable TString
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
                                                tkwmethnode5,
                                                pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               psignaturenode7,
+                                               tstringnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction94
+private class ReduceAction81
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist4
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pvisibilitynode6 = nodearraylist2
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist3
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist4
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               null,
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction95
+private class ReduceAction82
 special 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
@@ -5555,40 +3613,35 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist4
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa nullable TKwredef
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist4
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist5
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               null,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction96
+private class ReduceAction83
 special 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
@@ -5596,39 +3649,35 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist4
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode3 = nodearraylist2
+                                       assert pablenode3 isa nullable AAble
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist4
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist5
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction97
+private class ReduceAction84
 special 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
@@ -5637,40 +3686,37 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist4
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode3 = nodearraylist2
+                                       assert pablenode3 isa nullable AAble
+                                       var tkwredefnode5 = nodearraylist3
+                                       assert tkwredefnode5 isa nullable TKwredef
+                                       var pvisibilitynode6 = nodearraylist4
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist5
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist6
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction98
+private class ReduceAction85
 special 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
@@ -5678,39 +3724,35 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist4
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode4 = nodearraylist2
+                                       assert pablenode4 isa nullable AAble
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist4
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist5
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction99
+private class ReduceAction86
 special 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
@@ -5719,39 +3761,37 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist4
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode4 = nodearraylist2
+                                       assert pablenode4 isa nullable AAble
+                                       var tkwredefnode5 = nodearraylist3
+                                       assert tkwredefnode5 isa nullable TKwredef
+                                       var pvisibilitynode6 = nodearraylist4
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist5
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist6
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               pablenode4,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction100
+private class ReduceAction87
 special 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
@@ -5760,34 +3800,33 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist4
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode3 = nodearraylist2
+                                       assert pablenode3 isa nullable AAble
+                                       var pablenode4 = nodearraylist3
+                                       assert pablenode4 isa nullable AAble
+                                       var pvisibilitynode6 = nodearraylist4
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist5
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist6
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode4,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction101
+private class ReduceAction88
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -5801,41 +3840,39 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist4
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode3 = nodearraylist2
+                                       assert pablenode3 isa nullable AAble
+                                       var pablenode4 = nodearraylist3
+                                       assert pablenode4 isa nullable AAble
+                                       var tkwredefnode5 = nodearraylist4
+                                       assert tkwredefnode5 isa nullable TKwredef
+                                       var pvisibilitynode6 = nodearraylist5
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist6
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist7
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode4,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction102
+private class ReduceAction89
 special 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
@@ -5843,42 +3880,35 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist8
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pvisibilitynode6 = nodearraylist2
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist3
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist4
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode9 = nodearraylist5
+                                       assert ptypenode9 isa nullable AType
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
+                                               null,
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               ptypenode9,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction103
+private class ReduceAction90
 special 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
@@ -5887,40 +3917,37 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist4
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa nullable TKwredef
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist4
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist5
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode9 = nodearraylist6
+                                       assert ptypenode9 isa nullable AType
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               null,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               ptypenode9,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction104
+private class ReduceAction91
 special 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
@@ -5929,43 +3956,37 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist5
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist8
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode3 = nodearraylist2
+                                       assert pablenode3 isa nullable AAble
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist4
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist5
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode9 = nodearraylist6
+                                       assert ptypenode9 isa nullable AType
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               ptypenode9,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction105
+private class ReduceAction92
 special 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
@@ -5975,46 +3996,39 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist6
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist7
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode3 = nodearraylist2
+                                       assert pablenode3 isa nullable AAble
+                                       var tkwredefnode5 = nodearraylist3
+                                       assert tkwredefnode5 isa nullable TKwredef
+                                       var pvisibilitynode6 = nodearraylist4
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist5
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist6
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode9 = nodearraylist7
+                                       assert ptypenode9 isa nullable AType
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode10,
-                                               pexprnode11
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               ptypenode9,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction106
+private class ReduceAction93
 special 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
@@ -6023,41 +4037,37 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode4 = nodearraylist2
+                                       assert pablenode4 isa nullable AAble
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist4
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist5
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode9 = nodearraylist6
+                                       assert ptypenode9 isa nullable AType
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               null,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               ptypenode9,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction107
+private class ReduceAction94
 special 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
@@ -6067,41 +4077,39 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist5
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode4 = nodearraylist2
+                                       assert pablenode4 isa nullable AAble
+                                       var tkwredefnode5 = nodearraylist3
+                                       assert tkwredefnode5 isa nullable TKwredef
+                                       var pvisibilitynode6 = nodearraylist4
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist5
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist6
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode9 = nodearraylist7
+                                       assert ptypenode9 isa nullable AType
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               ptypenode9,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction108
+private class ReduceAction95
 special 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
@@ -6111,36 +4119,35 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist5
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode3 = nodearraylist2
+                                       assert pablenode3 isa nullable AAble
+                                       var pablenode4 = nodearraylist3
+                                       assert pablenode4 isa nullable AAble
+                                       var pvisibilitynode6 = nodearraylist4
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist5
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist6
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode9 = nodearraylist7
+                                       assert ptypenode9 isa nullable AType
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               pablenode3,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               ptypenode9,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction109
+private class ReduceAction96
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -6155,41 +4162,41 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist5
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode3 = nodearraylist2
+                                       assert pablenode3 isa nullable AAble
+                                       var pablenode4 = nodearraylist3
+                                       assert pablenode4 isa nullable AAble
+                                       var tkwredefnode5 = nodearraylist4
+                                       assert tkwredefnode5 isa nullable TKwredef
+                                       var pvisibilitynode6 = nodearraylist5
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist6
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist7
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode9 = nodearraylist8
+                                       assert ptypenode9 isa nullable AType
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               pablenode3,
+                                               pablenode4,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               ptypenode9,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction110
+private class ReduceAction97
 special 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
@@ -6199,36 +4206,31 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist5
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pvisibilitynode6 = nodearraylist2
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist3
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist4
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var pexprnode10 = nodearraylist7
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               null,
+                                               null,
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               null,
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction111
+private class ReduceAction98
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -6243,36 +4245,33 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist5
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa nullable TKwredef
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist4
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist5
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var pexprnode10 = nodearraylist8
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               null,
+                                               null,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               null,
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction112
+private class ReduceAction99
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -6287,40 +4286,38 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist5
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode3 = nodearraylist2
+                                       assert pablenode3 isa nullable AAble
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist4
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist5
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var pexprnode10 = nodearraylist8
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               null,
+                                               pexprnode10
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
 init do end
 end
-private class ReduceAction113
+private class ReduceAction100
 special 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
@@ -6331,36 +4328,35 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist5
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode3 = nodearraylist2
+                                       assert pablenode3 isa nullable AAble
+                                       var tkwredefnode5 = nodearraylist3
+                                       assert tkwredefnode5 isa nullable TKwredef
+                                       var pvisibilitynode6 = nodearraylist4
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist5
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist6
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var pexprnode10 = nodearraylist9
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               pablenode3,
+                                               null,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               null,
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction114
+private class ReduceAction101
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -6375,40 +4371,38 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist5
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode4 = nodearraylist2
+                                       assert pablenode4 isa nullable AAble
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist4
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist5
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var pexprnode10 = nodearraylist8
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               null,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               null,
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction115
+private class ReduceAction102
 special 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
@@ -6419,40 +4413,40 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist5
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode4 = nodearraylist2
+                                       assert pablenode4 isa nullable AAble
+                                       var tkwredefnode5 = nodearraylist3
+                                       assert tkwredefnode5 isa nullable TKwredef
+                                       var pvisibilitynode6 = nodearraylist4
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist5
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist6
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var pexprnode10 = nodearraylist9
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               null,
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction116
+private class ReduceAction103
 special 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
@@ -6463,40 +4457,41 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist5
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode3 = nodearraylist2
+                                       assert pablenode3 isa nullable AAble
+                                       var pablenode4 = nodearraylist3
+                                       assert pablenode4 isa nullable AAble
+                                       var pvisibilitynode6 = nodearraylist4
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist5
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist6
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var pexprnode10 = nodearraylist9
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               pablenode3,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               null,
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction117
+private class ReduceAction104
 special 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
@@ -6507,41 +4502,41 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist5
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode3 = nodearraylist2
+                                       assert pablenode3 isa nullable AAble
+                                       var pablenode4 = nodearraylist3
+                                       assert pablenode4 isa nullable AAble
+                                       var tkwredefnode5 = nodearraylist4
+                                       assert tkwredefnode5 isa nullable TKwredef
+                                       var pvisibilitynode6 = nodearraylist5
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist6
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist7
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var pexprnode10 = nodearraylist10
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               pablenode3,
+                                               pablenode4,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               null,
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction118
+private class ReduceAction105
 special 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
@@ -6552,31 +4547,25 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist9
+                                       var pvisibilitynode6 = nodearraylist2
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist3
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist4
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode9 = nodearraylist5
+                                       assert ptypenode9 isa nullable AType
+                                       var pexprnode10 = nodearraylist8
                                        assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
+                                               null,
+                                               null,
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               ptypenode9,
                                                pexprnode10
                                        )
                                        node_list = ppropdefnode1
@@ -6584,11 +4573,12 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction119
+private class ReduceAction106
 special 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
@@ -6599,36 +4589,35 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist5
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa nullable TKwredef
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist4
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist5
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode9 = nodearraylist6
+                                       assert ptypenode9 isa nullable AType
+                                       var pexprnode10 = nodearraylist9
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               null,
+                                               null,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               ptypenode9,
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction120
+private class ReduceAction107
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -6644,31 +4633,27 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist6
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
+                                       var pablenode3 = nodearraylist2
+                                       assert pablenode3 isa nullable AAble
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist4
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist5
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode9 = nodearraylist6
+                                       assert ptypenode9 isa nullable AType
                                        var pexprnode10 = nodearraylist9
                                        assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               ptypenode9,
                                                pexprnode10
                                        )
                                        node_list = ppropdefnode1
@@ -6676,7 +4661,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction121
+private class ReduceAction108
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -6693,46 +4678,42 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist7
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist8
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var pexprnode11 = nodearraylist10
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode3 = nodearraylist2
+                                       assert pablenode3 isa nullable AAble
+                                       var tkwredefnode5 = nodearraylist3
+                                       assert tkwredefnode5 isa nullable TKwredef
+                                       var pvisibilitynode6 = nodearraylist4
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist5
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist6
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode9 = nodearraylist7
+                                       assert ptypenode9 isa nullable AType
+                                       var pexprnode10 = nodearraylist10
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode10,
-                                               pexprnode11
+                                               pablenode3,
+                                               null,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               ptypenode9,
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction122
+private class ReduceAction109
 special 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
@@ -6743,38 +4724,41 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode4 = nodearraylist2
+                                       assert pablenode4 isa nullable AAble
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist4
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist5
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode9 = nodearraylist6
+                                       assert ptypenode9 isa nullable AType
+                                       var pexprnode10 = nodearraylist9
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               ptypenode9,
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction123
+private class ReduceAction110
 special 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
@@ -6785,38 +4769,43 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist4
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode4 = nodearraylist2
+                                       assert pablenode4 isa nullable AAble
+                                       var tkwredefnode5 = nodearraylist3
+                                       assert tkwredefnode5 isa nullable TKwredef
+                                       var pvisibilitynode6 = nodearraylist4
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist5
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist6
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode9 = nodearraylist7
+                                       assert ptypenode9 isa nullable AType
+                                       var pexprnode10 = nodearraylist10
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               pablenode4,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               ptypenode9,
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction124
+private class ReduceAction111
 special 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
@@ -6827,38 +4816,44 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist4
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode3 = nodearraylist2
+                                       assert pablenode3 isa nullable AAble
+                                       var pablenode4 = nodearraylist3
+                                       assert pablenode4 isa nullable AAble
+                                       var pvisibilitynode6 = nodearraylist4
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist5
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist6
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode9 = nodearraylist7
+                                       assert ptypenode9 isa nullable AType
+                                       var pexprnode10 = nodearraylist10
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode4,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               ptypenode9,
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction125
+private class ReduceAction112
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -6869,40 +4864,43 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist4
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pablenode3 = nodearraylist2
+                                       assert pablenode3 isa nullable AAble
+                                       var pablenode4 = nodearraylist3
+                                       assert pablenode4 isa nullable AAble
+                                       var tkwredefnode5 = nodearraylist4
+                                       assert tkwredefnode5 isa nullable TKwredef
+                                       var pvisibilitynode6 = nodearraylist5
+                                       assert pvisibilitynode6 isa nullable AVisibility
+                                       var tkwvarnode7 = nodearraylist6
+                                       assert tkwvarnode7 isa nullable TKwvar
+                                       var tattridnode8 = nodearraylist7
+                                       assert tattridnode8 isa nullable TAttrid
+                                       var ptypenode9 = nodearraylist8
+                                       assert ptypenode9 isa nullable AType
+                                       var pexprnode10 = nodearraylist11
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               pablenode3,
+                                               pablenode4,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwvarnode7,
+                                               tattridnode8,
+                                               ptypenode9,
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction126
+private class ReduceAction113
 special 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
@@ -6913,37 +4911,31 @@ special ReduceAction
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist4
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwinitnode5 = nodearraylist3
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var psignaturenode7 = nodearraylist4
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist6
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               tkwinitnode5,
+                                               null,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction127
+private class ReduceAction114
 special 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
@@ -6953,39 +4945,35 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist4
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwinitnode5 = nodearraylist4
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               tkwinitnode5,
+                                               null,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction128
+private class ReduceAction115
 special 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
@@ -6997,32 +4985,29 @@ special ReduceAction
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist4
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwinitnode5 = nodearraylist3
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
+                                               tkwinitnode5,
                                                pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction129
+private class ReduceAction116
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -7037,39 +5022,37 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist4
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwinitnode5 = nodearraylist4
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
+                                               tkwinitnode5,
                                                pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction130
+private class ReduceAction117
 special 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
@@ -7081,32 +5064,27 @@ special ReduceAction
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist4
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwinitnode5 = nodearraylist3
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var psignaturenode7 = nodearraylist4
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist6
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               tkwinitnode5,
+                                               null,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction131
+private class ReduceAction118
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -7121,34 +5099,31 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist4
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwinitnode5 = nodearraylist4
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               tkwinitnode5,
+                                               null,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction132
+private class ReduceAction119
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -7165,36 +5140,34 @@ special ReduceAction
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist4
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwinitnode5 = nodearraylist3
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
+                                               tkwinitnode5,
                                                pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction133
+private class ReduceAction120
 special 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
@@ -7205,42 +5178,37 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist4
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwinitnode5 = nodearraylist4
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
+                                               tkwinitnode5,
                                                pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction134
+private class ReduceAction121
 special 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
@@ -7250,41 +5218,30 @@ special ReduceAction
                                        assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist8
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwtypenode5 = nodearraylist3
+                                       assert tkwtypenode5 isa nullable TKwtype
+                                       var tclassidnode6 = nodearraylist4
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var ptypenode7 = nodearraylist5
+                                       assert ptypenode7 isa nullable AType
+                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
+                                               tkwtypenode5,
+                                               tclassidnode6,
+                                               ptypenode7
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction135
+private class ReduceAction122
 special 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
@@ -7293,2053 +5250,951 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist4
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwtypenode5 = nodearraylist4
+                                       assert tkwtypenode5 isa nullable TKwtype
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
+                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               tkwtypenode5,
+                                               tclassidnode6,
+                                               ptypenode7
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction136
+private class ReduceAction123
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist5
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist8
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
+                                       var tkwreadablenode3 = nodearraylist1
+                                       assert tkwreadablenode3 isa nullable TKwreadable
+                                       var pablenode1: nullable AReadAble = new AReadAble.init_areadable(
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
+                                               tkwreadablenode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pablenode1
+                                       p.push(p.go_to(13), node_list)
        end
 init do end
 end
-private class ReduceAction137
+private class ReduceAction124
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist6
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist7
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode10,
-                                               pexprnode11
+                                       var tkwredefnode2 = nodearraylist1
+                                       assert tkwredefnode2 isa nullable TKwredef
+                                       var tkwreadablenode3 = nodearraylist2
+                                       assert tkwreadablenode3 isa nullable TKwreadable
+                                       var pablenode1: nullable AReadAble = new AReadAble.init_areadable(
+                                               tkwredefnode2,
+                                               tkwreadablenode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pablenode1
+                                       p.push(p.go_to(13), node_list)
        end
 init do end
 end
-private class ReduceAction138
+private class ReduceAction125
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tkwwritablenode3 = nodearraylist1
+                                       assert tkwwritablenode3 isa nullable TKwwritable
+                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pablenode1
+                                       p.push(p.go_to(14), node_list)
        end
 init do end
 end
-private class ReduceAction139
+private class ReduceAction126
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist5
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tkwredefnode2 = nodearraylist1
+                                       assert tkwredefnode2 isa nullable TKwredef
+                                       var tkwwritablenode3 = nodearraylist2
+                                       assert tkwwritablenode3 isa nullable TKwwritable
+                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
+                                               tkwredefnode2,
+                                               tkwwritablenode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pablenode1
+                                       p.push(p.go_to(14), node_list)
        end
 init do end
 end
-private class ReduceAction140
+private class ReduceAction127
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var pvisibilitynode1: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                       )
+                                       node_list = pvisibilitynode1
+                                       p.push(p.go_to(15), node_list)
+       end
+init do end
+end
+private class ReduceAction128
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist5
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tkwprivatenode2 = nodearraylist1
+                                       assert tkwprivatenode2 isa nullable TKwprivate
+                                       var pvisibilitynode1: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pvisibilitynode1
+                                       p.push(p.go_to(15), node_list)
        end
 init do end
 end
-private class ReduceAction141
+private class ReduceAction129
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist5
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tkwprotectednode2 = nodearraylist1
+                                       assert tkwprotectednode2 isa nullable TKwprotected
+                                       var pvisibilitynode1: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pvisibilitynode1
+                                       p.push(p.go_to(15), node_list)
        end
 init do end
 end
-private class ReduceAction142
+private class ReduceAction130
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist5
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tkwintrudenode2 = nodearraylist1
+                                       assert tkwintrudenode2 isa nullable TKwintrude
+                                       var pvisibilitynode1: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pvisibilitynode1
+                                       p.push(p.go_to(15), node_list)
        end
 init do end
 end
-private class ReduceAction143
+private class ReduceAction131
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist5
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var pmethidnode1: nullable AIdMethid = new AIdMethid.init_aidmethid(
+                                               tidnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction144
+private class ReduceAction132
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist5
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tplusnode2 = nodearraylist1
+                                       assert tplusnode2 isa nullable TPlus
+                                       var pmethidnode1: nullable APlusMethid = new APlusMethid.init_aplusmethid(
+                                               tplusnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction145
+private class ReduceAction133
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist5
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tminusnode2 = nodearraylist1
+                                       assert tminusnode2 isa nullable TMinus
+                                       var pmethidnode1: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
+                                               tminusnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction146
+private class ReduceAction134
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist5
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tstarnode2 = nodearraylist1
+                                       assert tstarnode2 isa nullable TStar
+                                       var pmethidnode1: nullable AStarMethid = new AStarMethid.init_astarmethid(
+                                               tstarnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction147
+private class ReduceAction135
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist5
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tslashnode2 = nodearraylist1
+                                       assert tslashnode2 isa nullable TSlash
+                                       var pmethidnode1: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
+                                               tslashnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction148
+private class ReduceAction136
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist5
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tpercentnode2 = nodearraylist1
+                                       assert tpercentnode2 isa nullable TPercent
+                                       var pmethidnode1: nullable APercentMethid = new APercentMethid.init_apercentmethid(
+                                               tpercentnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction149
+private class ReduceAction137
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist5
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var teqnode2 = nodearraylist1
+                                       assert teqnode2 isa nullable TEq
+                                       var pmethidnode1: nullable AEqMethid = new AEqMethid.init_aeqmethid(
+                                               teqnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction150
+private class ReduceAction138
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist9
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
+                                       var tnenode2 = nodearraylist1
+                                       assert tnenode2 isa nullable TNe
+                                       var pmethidnode1: nullable ANeMethid = new ANeMethid.init_anemethid(
+                                               tnenode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction151
+private class ReduceAction139
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist5
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tlenode2 = nodearraylist1
+                                       assert tlenode2 isa nullable TLe
+                                       var pmethidnode1: nullable ALeMethid = new ALeMethid.init_alemethid(
+                                               tlenode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction152
+private class ReduceAction140
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist6
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist9
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
+                                       var tgenode2 = nodearraylist1
+                                       assert tgenode2 isa nullable TGe
+                                       var pmethidnode1: nullable AGeMethid = new AGeMethid.init_agemethid(
+                                               tgenode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction153
+private class ReduceAction141
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist7
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist8
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var pexprnode11 = nodearraylist10
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode10,
-                                               pexprnode11
+                                       var tltnode2 = nodearraylist1
+                                       assert tltnode2 isa nullable TLt
+                                       var pmethidnode1: nullable ALtMethid = new ALtMethid.init_altmethid(
+                                               tltnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction154
+private class ReduceAction142
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tgtnode2 = nodearraylist1
+                                       assert tgtnode2 isa nullable TGt
+                                       var pmethidnode1: nullable AGtMethid = new AGtMethid.init_agtmethid(
+                                               tgtnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction155
+private class ReduceAction143
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist4
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tobranode2 = nodearraylist1
+                                       assert tobranode2 isa nullable TObra
+                                       var tcbranode3 = nodearraylist2
+                                       assert tcbranode3 isa nullable TCbra
+                                       var pmethidnode1: nullable ABraMethid = new ABraMethid.init_abramethid(
+                                               tobranode2,
+                                               tcbranode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction156
+private class ReduceAction144
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstarshipnode2 = nodearraylist1
+                                       assert tstarshipnode2 isa nullable TStarship
+                                       var pmethidnode1: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
+                                               tstarshipnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
+       end
+init do end
+end
+private class ReduceAction145
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist4
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var tassignnode3 = nodearraylist2
+                                       assert tassignnode3 isa nullable TAssign
+                                       var pmethidnode1: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
+                                               tidnode2,
+                                               tassignnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction157
+private class ReduceAction146
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist4
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tobranode2 = nodearraylist1
+                                       assert tobranode2 isa nullable TObra
+                                       var tcbranode3 = nodearraylist2
+                                       assert tcbranode3 isa nullable TCbra
+                                       var tassignnode4 = nodearraylist3
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pmethidnode1: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
+                                               tobranode2,
+                                               tcbranode3,
+                                               tassignnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction158
+private class ReduceAction147
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist4
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var listnode2 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var ptypenode3 = nodearraylist1
+                                       assert ptypenode3 isa nullable AType
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               listnode2,
+                                               ptypenode3,
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(17), node_list)
        end
 init do end
 end
-private class ReduceAction159
+private class ReduceAction148
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist4
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var listnode3 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var ptypenode4 = nodearraylist2
+                                       assert ptypenode4 isa nullable AType
+                                       var listnode5 = nodearraylist3
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               listnode3,
+                                               ptypenode4,
+                                               listnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(17), node_list)
        end
 init do end
 end
-private class ReduceAction160
+private class ReduceAction149
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist4
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var listnode2 = new Array[Object]
+                                       var listnode4 = new Array[Object]
+                                       var ptypenode3 = nodearraylist1
+                                       assert ptypenode3 isa nullable AType
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               listnode2,
+                                               ptypenode3,
+                                               listnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(17), node_list)
        end
 init do end
 end
-private class ReduceAction161
+private class ReduceAction150
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist4
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var listnode3 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var ptypenode4 = nodearraylist2
+                                       assert ptypenode4 isa nullable AType
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               listnode3,
+                                               ptypenode4,
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(17), node_list)
        end
 init do end
 end
-private class ReduceAction162
+private class ReduceAction151
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist4
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
+                                       var listnode2 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var listnode4 = nodearraylist1
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               listnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(17), node_list)
        end
 init do end
 end
-private class ReduceAction163
+private class ReduceAction152
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist4
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
+                                       var listnode3 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var listnode5 = nodearraylist2
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               listnode3,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               listnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(17), node_list)
        end
 init do end
 end
-private class ReduceAction164
+private class ReduceAction153
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist4
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
+                                       var listnode2 = new Array[Object]
+                                       var listnode4 = new Array[Object]
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               listnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               listnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(17), node_list)
        end
 init do end
 end
-private class ReduceAction165
+private class ReduceAction154
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist4
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
+                                       var listnode3 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               listnode3,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(17), node_list)
        end
 init do end
 end
-private class ReduceAction166
+private class ReduceAction155
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist9
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
+                                       var listnode2 = new Array[Object]
+                                       var listnode4 = new Array[Object]
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               listnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
+                                               listnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(18), node_list)
        end
 init do end
 end
-private class ReduceAction167
+private class ReduceAction156
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist4
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
+                                       var listnode3 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               listnode3,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(18), node_list)
        end
 init do end
 end
-private class ReduceAction168
+private class ReduceAction157
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var listnode2 = new Array[Object]
+                                       var listnode4 = new Array[Object]
+                                       var ptypenode3 = nodearraylist1
+                                       assert ptypenode3 isa nullable AType
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               listnode2,
+                                               ptypenode3,
+                                               listnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(18), node_list)
        end
 init do end
 end
-private class ReduceAction169
+private class ReduceAction158
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist5
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var listnode3 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var ptypenode4 = nodearraylist2
+                                       assert ptypenode4 isa nullable AType
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               listnode3,
+                                               ptypenode4,
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(18), node_list)
        end
 init do end
 end
-private class ReduceAction170
+private class ReduceAction159
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist5
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode2 = new Array[Object]
+                                       var pparamnode1 = nodearraylist3
+                                       assert pparamnode1 isa nullable AParam
+                                       if pparamnode1 != null then
+                                               listnode2.add(pparamnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(19), node_list)
        end
 init do end
 end
-private class ReduceAction171
+private class ReduceAction160
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist5
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode3 = new Array[Object]
+                                       var pparamnode1 = nodearraylist3
+                                       assert pparamnode1 isa nullable AParam
+                                       var listnode2 = nodearraylist4
+                                       assert listnode2 isa Array[Object]
+                                       if pparamnode1 != null then
+                                               listnode3.add(pparamnode1)
+                                       end
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
+                                       p.push(p.go_to(19), node_list)
        end
 init do end
 end
-private class ReduceAction172
+private class ReduceAction161
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist5
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode1 = new Array[Object]
+                                       node_list = listnode1
+                                       p.push(p.go_to(19), node_list)
        end
 init do end
 end
-private class ReduceAction173
+private class ReduceAction162
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist5
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pparamnode1 = nodearraylist3
+                                       assert pparamnode1 isa nullable AParam
+                                       node_list = pparamnode1
+                                       p.push(p.go_to(20), node_list)
        end
 init do end
 end
-private class ReduceAction174
+private class ReduceAction163
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist5
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
+                                               tidnode2,
+                                               null,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pparamnode1
+                                       p.push(p.go_to(21), node_list)
        end
 init do end
 end
-private class ReduceAction175
+private class ReduceAction164
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist5
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var ptypenode3 = nodearraylist2
+                                       assert ptypenode3 isa nullable AType
+                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
+                                               tidnode2,
+                                               ptypenode3,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pparamnode1
+                                       p.push(p.go_to(21), node_list)
        end
 init do end
 end
-private class ReduceAction176
+private class ReduceAction165
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist5
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var ptypenode3 = nodearraylist2
+                                       assert ptypenode3 isa nullable AType
+                                       var tdotdotdotnode4 = nodearraylist3
+                                       assert tdotdotdotnode4 isa nullable TDotdotdot
+                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
+                                               tidnode2,
+                                               ptypenode3,
+                                               tdotdotdotnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pparamnode1
+                                       p.push(p.go_to(21), node_list)
        end
 init do end
 end
-private class ReduceAction177
+private class ReduceAction166
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist5
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode2 = new Array[Object]
+                                       var listnode1 = nodearraylist2
+                                       assert listnode1 isa Array[Object]
+                                       listnode2 = concat(listnode2, listnode1)
+                                       node_list = listnode2
+                                       p.push(p.go_to(22), node_list)
        end
 init do end
 end
-private class ReduceAction178
+private class ReduceAction167
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist5
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tbangnode3 = nodearraylist1
+                                       assert tbangnode3 isa nullable TBang
+                                       var tidnode4 = nodearraylist2
+                                       assert tidnode4 isa nullable TId
+                                       var psignaturenode5 = nodearraylist3
+                                       assert psignaturenode5 isa nullable ASignature
+                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
+                                               null,
+                                               tbangnode3,
+                                               tidnode4,
+                                               psignaturenode5,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pclosuredeclnode1
+                                       p.push(p.go_to(23), node_list)
        end
 init do end
 end
-private class ReduceAction179
+private class ReduceAction168
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist5
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var tbangnode3 = nodearraylist2
+                                       assert tbangnode3 isa nullable TBang
+                                       var tidnode4 = nodearraylist3
+                                       assert tidnode4 isa nullable TId
+                                       var psignaturenode5 = nodearraylist4
+                                       assert psignaturenode5 isa nullable ASignature
+                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
+                                               tkwbreaknode2,
+                                               tbangnode3,
+                                               tidnode4,
+                                               psignaturenode5,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pclosuredeclnode1
+                                       p.push(p.go_to(23), node_list)
        end
 init do end
 end
-private class ReduceAction180
+private class ReduceAction169
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist10
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
+                                       var tbangnode3 = nodearraylist1
+                                       assert tbangnode3 isa nullable TBang
+                                       var tidnode4 = nodearraylist2
+                                       assert tidnode4 isa nullable TId
+                                       var psignaturenode5 = nodearraylist3
+                                       assert psignaturenode5 isa nullable ASignature
+                                       var pexprnode6 = nodearraylist5
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
+                                               null,
+                                               tbangnode3,
+                                               tidnode4,
+                                               psignaturenode5,
+                                               pexprnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pclosuredeclnode1
+                                       p.push(p.go_to(23), node_list)
        end
 init do end
 end
-private class ReduceAction181
+private class ReduceAction170
 special 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
@@ -9347,38 +6202,29 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist5
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var tbangnode3 = nodearraylist2
+                                       assert tbangnode3 isa nullable TBang
+                                       var tidnode4 = nodearraylist3
+                                       assert tidnode4 isa nullable TId
+                                       var psignaturenode5 = nodearraylist4
+                                       assert psignaturenode5 isa nullable ASignature
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
+                                               tkwbreaknode2,
+                                               tbangnode3,
+                                               tidnode4,
+                                               psignaturenode5,
+                                               pexprnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pclosuredeclnode1
+                                       p.push(p.go_to(23), node_list)
        end
 init do end
 end
-private class ReduceAction182
+private class ReduceAction171
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -9390,37 +6236,32 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
+                                       var tbangnode3 = nodearraylist1
+                                       assert tbangnode3 isa nullable TBang
+                                       var tidnode4 = nodearraylist2
+                                       assert tidnode4 isa nullable TId
+                                       var psignaturenode5 = nodearraylist3
+                                       assert psignaturenode5 isa nullable ASignature
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                               tbangnode3,
+                                               tidnode4,
+                                               psignaturenode5,
+                                               pexprnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pclosuredeclnode1
+                                       p.push(p.go_to(23), node_list)
        end
 init do end
 end
-private class ReduceAction183
+private class ReduceAction172
 special 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
@@ -9428,185 +6269,114 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist4
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var tbangnode3 = nodearraylist2
+                                       assert tbangnode3 isa nullable TBang
+                                       var tidnode4 = nodearraylist3
+                                       assert tidnode4 isa nullable TId
+                                       var psignaturenode5 = nodearraylist4
+                                       assert psignaturenode5 isa nullable ASignature
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
+                                               tkwbreaknode2,
+                                               tbangnode3,
+                                               tidnode4,
+                                               psignaturenode5,
+                                               pexprnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pclosuredeclnode1
+                                       p.push(p.go_to(23), node_list)
        end
 init do end
 end
-private class ReduceAction184
+private class ReduceAction173
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist4
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(24), node_list)
        end
 init do end
 end
-private class ReduceAction185
+private class ReduceAction174
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist4
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
+                                       var listnode4 = new Array[Object]
+                                       var tclassidnode3 = nodearraylist1
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var ptypenode1: nullable AType = new AType.init_atype(
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                               tclassidnode3,
+                                               listnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(25), node_list)
        end
 init do end
 end
-private class ReduceAction186
+private class ReduceAction175
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist4
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var listnode4 = new Array[Object]
+                                       var tkwnullablenode2 = nodearraylist1
+                                       assert tkwnullablenode2 isa nullable TKwnullable
+                                       var tclassidnode3 = nodearraylist2
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               tkwnullablenode2,
+                                               tclassidnode3,
+                                               listnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(25), node_list)
        end
 init do end
 end
-private class ReduceAction187
+private class ReduceAction176
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist4
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode3 = nodearraylist1
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var listnode4 = nodearraylist4
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var ptypenode1: nullable AType = new AType.init_atype(
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                               tclassidnode3,
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(25), node_list)
        end
 init do end
 end
-private class ReduceAction188
+private class ReduceAction177
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -9618,2515 +6388,1414 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist4
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var listnode5 = new Array[Object]
+                                       var tkwnullablenode2 = nodearraylist1
+                                       assert tkwnullablenode2 isa nullable TKwnullable
+                                       var tclassidnode3 = nodearraylist2
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               tkwnullablenode2,
+                                               tclassidnode3,
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(25), node_list)
        end
 init do end
 end
-private class ReduceAction189
+private class ReduceAction178
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist4
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode2 = new Array[Object]
+                                       var ptypenode1 = nodearraylist1
+                                       assert ptypenode1 isa nullable AType
+                                       if ptypenode1 != null then
+                                               listnode2.add(ptypenode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(26), node_list)
        end
 init do end
 end
-private class ReduceAction190
+private class ReduceAction179
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist4
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode3 = new Array[Object]
+                                       var ptypenode1 = nodearraylist1
+                                       assert ptypenode1 isa nullable AType
+                                       var listnode2 = nodearraylist2
+                                       assert listnode2 isa Array[Object]
+                                       if ptypenode1 != null then
+                                               listnode3.add(ptypenode1)
+                                       end
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
+                                       p.push(p.go_to(26), node_list)
        end
 init do end
 end
-private class ReduceAction191
+private class ReduceAction180
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist4
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var ptypenode1 = nodearraylist3
+                                       assert ptypenode1 isa nullable AType
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(27), node_list)
        end
 init do end
 end
-private class ReduceAction192
+private class ReduceAction181
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist4
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var ptypenode1 = nodearraylist3
+                                       assert ptypenode1 isa nullable AType
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction193
+private class ReduceAction182
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist4
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist2
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(29), node_list)
        end
 init do end
 end
-private class ReduceAction194
+private class ReduceAction183
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(29), node_list)
        end
 init do end
 end
-private class ReduceAction195
+private class ReduceAction184
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist4
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(29), node_list)
        end
 init do end
 end
-private class ReduceAction196
+private class ReduceAction185
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist5
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(29), node_list)
        end
 init do end
 end
-private class ReduceAction197
+private class ReduceAction186
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist6
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist7
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode10
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(30), node_list)
        end
 init do end
 end
-private class ReduceAction198
+private class ReduceAction187
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       if pexprnode2 != null then
+                                               listnode4.add(pexprnode2)
+                                       end
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(30), node_list)
        end
 init do end
 end
-private class ReduceAction199
+private class ReduceAction188
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist5
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction200
+private class ReduceAction189
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist5
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       if pexprnode2 != null then
+                                               listnode4.add(pexprnode2)
+                                       end
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction201
+private class ReduceAction190
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist5
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist2
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(32), node_list)
        end
 init do end
 end
-private class ReduceAction202
+private class ReduceAction191
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist5
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction203
+private class ReduceAction192
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist5
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction204
+private class ReduceAction193
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist5
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var tkwreturnnode2 = nodearraylist1
+                                       assert tkwreturnnode2 isa nullable TKwreturn
+                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
+                                               tkwreturnnode2,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction205
+private class ReduceAction194
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist5
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var tkwreturnnode2 = nodearraylist1
+                                       assert tkwreturnnode2 isa nullable TKwreturn
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
+                                               tkwreturnnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction206
+private class ReduceAction195
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist5
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
+                                               null,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction207
+private class ReduceAction196
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist5
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
+                                               plabelnode3,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction208
+private class ReduceAction197
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist5
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
+                                               null,
+                                               pexprnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction209
+private class ReduceAction198
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist5
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
+                                               plabelnode3,
+                                               pexprnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction210
+private class ReduceAction199
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9
+                                       var tkwabortnode2 = nodearraylist1
+                                       assert tkwabortnode2 isa nullable TKwabort
+                                       var pexprnode1: nullable AAbortExpr = new AAbortExpr.init_aabortexpr(
+                                               tkwabortnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction211
+private class ReduceAction200
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist5
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
+                                               null,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction212
+private class ReduceAction201
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist6
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
+                                               plabelnode3,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction213
+private class ReduceAction202
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist7
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist8
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode10
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
+                                               null,
+                                               pexprnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction214
+private class ReduceAction203
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
+                                               plabelnode3,
+                                               pexprnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction215
+private class ReduceAction204
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist4
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction216
+private class ReduceAction205
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist4
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction217
+private class ReduceAction206
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist4
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction218
+private class ReduceAction207
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist4
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction219
+private class ReduceAction208
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist4
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction220
+private class ReduceAction209
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
+       end
+init do end
+end
+private class ReduceAction210
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist4
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var listnode5 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction221
+private class ReduceAction211
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist4
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
+                                       var listnode5 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction222
+private class ReduceAction212
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist4
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var listnode5 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var listnode6 = nodearraylist6
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode7
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction223
+private class ReduceAction213
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist4
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
+                                       var listnode5 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var listnode6 = nodearraylist3
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode7
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction224
+private class ReduceAction214
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist4
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
+                                       var listnode5 = new Array[Object]
+                                       var tkwsupernode3 = nodearraylist1
+                                       assert tkwsupernode3 isa nullable TKwsuper
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                               tkwsupernode3,
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction225
+private class ReduceAction215
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist4
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var listnode5 = new Array[Object]
+                                       var pqualifiednode2 = nodearraylist1
+                                       assert pqualifiednode2 isa nullable AQualified
+                                       var tkwsupernode3 = nodearraylist2
+                                       assert tkwsupernode3 isa nullable TKwsuper
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode3,
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction226
+private class ReduceAction216
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwinitnode3 = nodearraylist4
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction227
+private class ReduceAction217
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist4
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var tkwinitnode3 = nodearraylist1
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction228
+private class ReduceAction218
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist5
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9
+                                       var tkwlabelnode2 = nodearraylist1
+                                       assert tkwlabelnode2 isa nullable TKwlabel
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var plabelnode1: nullable ALabel = new ALabel.init_alabel(
+                                               tkwlabelnode2,
+                                               tidnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = plabelnode1
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction229
+private class ReduceAction219
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist6
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist7
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode2 = new Array[Object]
+                                       var pclosuredefnode1 = nodearraylist1
+                                       assert pclosuredefnode1 isa nullable AClosureDef
+                                       if pclosuredefnode1 != null then
+                                               listnode2.add(pclosuredefnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(35), node_list)
        end
 init do end
 end
-private class ReduceAction230
+private class ReduceAction220
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode3 = new Array[Object]
+                                       var pclosuredefnode1 = nodearraylist1
+                                       assert pclosuredefnode1 isa nullable AClosureDef
+                                       var listnode2 = nodearraylist2
+                                       assert listnode2 isa Array[Object]
+                                       if pclosuredefnode1 != null then
+                                               listnode3.add(pclosuredefnode1)
+                                       end
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
+                                       p.push(p.go_to(35), node_list)
        end
 init do end
 end
-private class ReduceAction231
+private class ReduceAction221
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist5
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var plabelnode7 = nodearraylist5
+                                       assert plabelnode7 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode7
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
-private class ReduceAction232
+private class ReduceAction222
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist5
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       var plabelnode8 = nodearraylist6
+                                       assert plabelnode8 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               plabelnode8
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
-private class ReduceAction233
+private class ReduceAction223
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist5
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
-private class ReduceAction234
+private class ReduceAction224
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist5
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
-private class ReduceAction235
+private class ReduceAction225
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist5
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var pexprnode6 = nodearraylist5
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               null,
+                                               pexprnode6,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
-private class ReduceAction236
+private class ReduceAction226
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist5
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode7 = nodearraylist6
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               null,
+                                               pexprnode7,
+                                               null
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
-private class ReduceAction237
+private class ReduceAction227
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist5
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pexprnode6 = nodearraylist5
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(37), node_list)
        end
 init do end
 end
-private class ReduceAction238
+private class ReduceAction228
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist5
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var pexprnode7 = nodearraylist6
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(37), node_list)
        end
 init do end
 end
-private class ReduceAction239
+private class ReduceAction229
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist5
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               tkwdonode5,
+                                               null,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(37), node_list)
        end
 init do end
 end
-private class ReduceAction240
+private class ReduceAction230
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist5
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               null,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(37), node_list)
        end
 init do end
 end
-private class ReduceAction241
+private class ReduceAction231
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist5
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var pclosureidnode1: nullable ASimpleClosureId = new ASimpleClosureId.init_asimpleclosureid(
+                                               tidnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pclosureidnode1
+                                       p.push(p.go_to(38), node_list)
        end
 init do end
 end
-private class ReduceAction242
+private class ReduceAction232
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var pclosureidnode1: nullable ABreakClosureId = new ABreakClosureId.init_abreakclosureid(
+                                               tkwbreaknode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pclosureidnode1
+                                       p.push(p.go_to(38), node_list)
        end
 init do end
 end
-private class ReduceAction243
+private class ReduceAction233
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist5
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8
+                                       var pexprnode4 = nodearraylist1
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               null,
+                                               null,
+                                               pexprnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(39), node_list)
        end
 init do end
 end
-private class ReduceAction244
+private class ReduceAction234
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist6
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               null,
+                                               null,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
-private class ReduceAction245
+private class ReduceAction235
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist7
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist8
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode10
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist3
+                                       assert ptypenode4 isa nullable AType
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
+                                               null,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
-private class ReduceAction246
+private class ReduceAction236
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var tassignnode5 = nodearraylist3
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist5
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
+                                               tassignnode5,
+                                               pexprnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
-private class ReduceAction247
+private class ReduceAction237
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist4
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist3
+                                       assert ptypenode4 isa nullable AType
+                                       var tassignnode5 = nodearraylist4
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
-private class ReduceAction248
+private class ReduceAction238
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist4
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist4
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var tassignnode4 = nodearraylist5
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               tassignnode4,
+                                               pexprnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction249
+private class ReduceAction239
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist4
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
+                                       var tattridnode3 = nodearraylist1
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var tassignnode4 = nodearraylist2
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode5 = nodearraylist3
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               tassignnode4,
+                                               pexprnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction250
+private class ReduceAction240
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12138,190 +7807,151 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist4
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var tassignnode6 = nodearraylist6
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist7
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               tassignnode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction251
+private class ReduceAction241
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist4
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var tassignnode6 = nodearraylist3
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist4
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               tassignnode6,
+                                               pexprnode7
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction252
+private class ReduceAction242
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist4
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tassignnode5 = nodearraylist3
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ABraAssignExpr = new ABraAssignExpr.init_abraassignexpr(
+                                               pexprnode2,
+                                               listnode4,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction253
+private class ReduceAction243
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist4
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist4
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var passignopnode4 = nodearraylist5
+                                       assert passignopnode4 isa nullable AAssignOp
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction254
+private class ReduceAction244
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist4
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
+                                       var tattridnode3 = nodearraylist1
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var passignopnode4 = nodearraylist2
+                                       assert passignopnode4 isa nullable AAssignOp
+                                       var pexprnode5 = nodearraylist3
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction255
+private class ReduceAction245
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12333,284 +7963,171 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist4
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var passignopnode6 = nodearraylist6
+                                       assert passignopnode6 isa nullable AAssignOp
+                                       var pexprnode7 = nodearraylist7
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               passignopnode6,
+                                               pexprnode7
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction256
+private class ReduceAction246
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist4
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var passignopnode6 = nodearraylist3
+                                       assert passignopnode6 isa nullable AAssignOp
+                                       var pexprnode7 = nodearraylist4
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               passignopnode6,
+                                               pexprnode7
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction257
+private class ReduceAction247
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist4
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var passignopnode5 = nodearraylist3
+                                       assert passignopnode5 isa nullable AAssignOp
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ABraReassignExpr = new ABraReassignExpr.init_abrareassignexpr(
+                                               pexprnode2,
+                                               listnode4,
+                                               passignopnode5,
+                                               pexprnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction258
+private class ReduceAction248
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               null
+                                       var tpluseqnode2 = nodearraylist1
+                                       assert tpluseqnode2 isa nullable TPluseq
+                                       var passignopnode1: nullable APlusAssignOp = new APlusAssignOp.init_aplusassignop(
+                                               tpluseqnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(42), node_list)
        end
 init do end
 end
-private class ReduceAction259
+private class ReduceAction249
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist4
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
+                                       var tminuseqnode2 = nodearraylist1
+                                       assert tminuseqnode2 isa nullable TMinuseq
+                                       var passignopnode1: nullable AMinusAssignOp = new AMinusAssignOp.init_aminusassignop(
+                                               tminuseqnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(42), node_list)
        end
 init do end
 end
-private class ReduceAction260
+private class ReduceAction250
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist5
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               null
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var plabelnode4 = nodearraylist3
+                                       assert plabelnode4 isa nullable ALabel
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               plabelnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(43), node_list)
        end
 init do end
 end
-private class ReduceAction261
+private class ReduceAction251
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist6
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist7
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode10,
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
                                                null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(43), node_list)
        end
 init do end
 end
-private class ReduceAction262
+private class ReduceAction252
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12623,78 +8140,54 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode4 = nodearraylist6
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode5 = nodearraylist8
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               pexprnode4,
+                                               pexprnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(44), node_list)
        end
 init do end
 end
-private class ReduceAction263
+private class ReduceAction253
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist5
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode4 = nodearraylist6
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               pexprnode4,
                                                null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(44), node_list)
        end
 init do end
 end
-private class ReduceAction264
+private class ReduceAction254
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12707,83 +8200,58 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist5
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode5 = nodearraylist8
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               pexprnode4,
+                                               pexprnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(44), node_list)
        end
 init do end
 end
-private class ReduceAction265
+private class ReduceAction255
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist5
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               null,
+                                               pexprnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(44), node_list)
        end
 init do end
 end
-private class ReduceAction266
+private class ReduceAction256
 special 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
@@ -12791,167 +8259,98 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist5
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               null,
+                                               pexprnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(44), node_list)
        end
 init do end
 end
-private class ReduceAction267
+private class ReduceAction257
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist5
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist2
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(45), node_list)
        end
 init do end
 end
-private class ReduceAction268
+private class ReduceAction258
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       node_list = null
+                                       p.push(p.go_to(45), node_list)
+       end
+init do end
+end
+private class ReduceAction259
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist5
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
+                                       var tkwloopnode2 = nodearraylist1
+                                       assert tkwloopnode2 isa nullable TKwloop
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var plabelnode4 = nodearraylist3
+                                       assert plabelnode4 isa nullable ALabel
+                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
+                                               tkwloopnode2,
+                                               pexprnode3,
+                                               plabelnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction269
+private class ReduceAction260
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist5
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
+                                       var tkwloopnode2 = nodearraylist1
+                                       assert tkwloopnode2 isa nullable TKwloop
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
+                                               tkwloopnode2,
+                                               pexprnode3,
                                                null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction270
+private class ReduceAction261
 special 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
@@ -12959,82 +8358,67 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist5
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var plabelnode6 = nodearraylist7
+                                       assert plabelnode6 isa nullable ALabel
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction271
+private class ReduceAction262
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist5
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
                                                null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction272
+private class ReduceAction263
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -13043,40 +8427,38 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist5
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pexprnode6 = nodearraylist10
+                                       assert pexprnode6 isa nullable AExpr
+                                       var plabelnode7 = nodearraylist11
+                                       assert plabelnode7 isa nullable ALabel
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode7
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction273
+private class ReduceAction264
 special 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
@@ -13085,476 +8467,272 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist5
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pexprnode6 = nodearraylist10
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
                                                null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction274
+private class ReduceAction265
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               null
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa nullable TKwassert
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode5 = nodearraylist4
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               null,
+                                               pexprnode4,
+                                               pexprnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(49), node_list)
        end
 init do end
 end
-private class ReduceAction275
+private class ReduceAction266
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist5
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa nullable TKwassert
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode5 = nodearraylist5
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               pexprnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(49), node_list)
        end
 init do end
 end
-private class ReduceAction276
+private class ReduceAction267
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist6
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa nullable TKwassert
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               null,
+                                               pexprnode4,
                                                null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(49), node_list)
        end
 init do end
 end
-private class ReduceAction277
+private class ReduceAction268
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist7
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist8
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode10,
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa nullable TKwassert
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               tidnode3,
+                                               pexprnode4,
                                                null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(49), node_list)
        end
 init do end
 end
-private class ReduceAction278
+private class ReduceAction269
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var tidnode1 = nodearraylist1
+                                       assert tidnode1 isa nullable TId
+                                       node_list = tidnode1
+                                       p.push(p.go_to(50), node_list)
        end
 init do end
 end
-private class ReduceAction279
+private class ReduceAction270
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist4
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction280
+private class ReduceAction271
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist4
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
+                                       var listnode5 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var listnode6 = nodearraylist6
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode7
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction281
+private class ReduceAction272
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist4
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
+                                       var listnode5 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var listnode6 = nodearraylist3
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction282
+private class ReduceAction273
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist4
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
+                                       var listnode4 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var listnode5 = nodearraylist3
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
+                                               pexprnode2,
+                                               listnode4,
+                                               listnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction283
+private class ReduceAction274
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist4
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction284
+private class ReduceAction275
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -13563,1263 +8741,589 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist4
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var tkwelsenode6 = nodearraylist9
+                                       assert tkwelsenode6 isa nullable TKwelse
+                                       var pexprnode7 = nodearraylist11
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfexprExpr = new AIfexprExpr.init_aifexprexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               tkwelsenode6,
+                                               pexprnode7
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction285
+private class ReduceAction276
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist4
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction286
+private class ReduceAction277
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist4
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction287
+private class ReduceAction278
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist4
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction288
+private class ReduceAction279
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist4
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist5
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AOrElseExpr = new AOrElseExpr.init_aorelseexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction289
+private class ReduceAction280
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist4
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(54), node_list)
        end
 init do end
 end
-private class ReduceAction290
+private class ReduceAction281
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var tstringnode10 = nodearraylist9
-                                       assert tstringnode10 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               tstringnode10
+                                       var tkwnotnode2 = nodearraylist1
+                                       assert tkwnotnode2 isa nullable TKwnot
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ANotExpr = new ANotExpr.init_anotexpr(
+                                               tkwnotnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(54), node_list)
        end
 init do end
 end
-private class ReduceAction291
+private class ReduceAction282
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(55), node_list)
+       end
+init do end
+end
+private class ReduceAction283
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist4
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(55), node_list)
        end
 init do end
 end
-private class ReduceAction292
+private class ReduceAction284
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist5
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var tstringnode10 = nodearraylist9
-                                       assert tstringnode10 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               tstringnode10
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AEeExpr = new AEeExpr.init_aeeexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(55), node_list)
        end
 init do end
 end
-private class ReduceAction293
+private class ReduceAction285
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist6
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist7
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var tstringnode11 = nodearraylist10
-                                       assert tstringnode11 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode10,
-                                               tstringnode11
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(55), node_list)
        end
 init do end
 end
-private class ReduceAction294
+private class ReduceAction286
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(55), node_list)
        end
 init do end
 end
-private class ReduceAction295
+private class ReduceAction287
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist5
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(55), node_list)
        end
 init do end
 end
-private class ReduceAction296
+private class ReduceAction288
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist5
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(55), node_list)
        end
 init do end
 end
-private class ReduceAction297
+private class ReduceAction289
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist5
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(55), node_list)
        end
 init do end
 end
-private class ReduceAction298
+private class ReduceAction290
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist5
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(55), node_list)
        end
 init do end
 end
-private class ReduceAction299
+private class ReduceAction291
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist5
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var ptypenode3 = nodearraylist4
+                                       assert ptypenode3 isa nullable AType
+                                       var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
+                                               pexprnode2,
+                                               ptypenode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(55), node_list)
        end
 init do end
 end
-private class ReduceAction300
+private class ReduceAction292
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist5
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(56), node_list)
        end
 init do end
 end
-private class ReduceAction301
+private class ReduceAction293
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist5
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(56), node_list)
        end
 init do end
 end
-private class ReduceAction302
+private class ReduceAction294
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist5
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(56), node_list)
        end
 init do end
 end
-private class ReduceAction303
+private class ReduceAction295
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist5
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(57), node_list)
        end
 init do end
 end
-private class ReduceAction304
+private class ReduceAction296
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist5
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(57), node_list)
        end
 init do end
 end
-private class ReduceAction305
+private class ReduceAction297
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist5
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(57), node_list)
        end
 init do end
 end
-private class ReduceAction306
+private class ReduceAction298
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var tstringnode10 = nodearraylist10
-                                       assert tstringnode10 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               tstringnode10
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(57), node_list)
        end
 init do end
 end
-private class ReduceAction307
+private class ReduceAction299
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist5
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(58), node_list)
        end
 init do end
 end
-private class ReduceAction308
+private class ReduceAction300
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist6
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var tstringnode10 = nodearraylist10
-                                       assert tstringnode10 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               tstringnode10
+                                       var tminusnode2 = nodearraylist1
+                                       assert tminusnode2 isa nullable TMinus
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
+                                               tminusnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(58), node_list)
        end
 init do end
 end
-private class ReduceAction309
+private class ReduceAction301
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist7
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist8
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var tstringnode11 = nodearraylist11
-                                       assert tstringnode11 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode10,
-                                               tstringnode11
+                                       var tkwoncenode2 = nodearraylist1
+                                       assert tkwoncenode2 isa nullable TKwonce
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
+                                               tkwoncenode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(58), node_list)
        end
 init do end
 end
-private class ReduceAction310
+private class ReduceAction302
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwwritablenode8 = nodearraylist3
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode8
-                                       )
-                                       var pvisibilitynode10 = nodearraylist4
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist5
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist6
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               null,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction311
+private class ReduceAction303
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
+                                       var listnode6 = new Array[Object]
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
                                                null,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var tkwwritablenode8 = nodearraylist4
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode7,
-                                               tkwwritablenode8
-                                       )
-                                       var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist6
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               null,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               null,
-                                               null
+                                               listnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction312
+private class ReduceAction304
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14829,183 +9333,87 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist4
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               null,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               null,
-                                               null
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tattridnode4 = nodearraylist5
+                                       assert tattridnode4 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction313
+private class ReduceAction305
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwwritablenode8 = nodearraylist4
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode8
-                                       )
-                                       var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist6
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               null,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               null,
-                                               null
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var tattridnode4 = nodearraylist2
+                                       assert tattridnode4 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction314
+private class ReduceAction306
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var tkwwritablenode8 = nodearraylist5
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode7,
-                                               tkwwritablenode8
-                                       )
-                                       var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist7
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               null,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               null,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist4
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction315
+private class ReduceAction307
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist5
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               null,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               null,
-                                               null
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var tattridnode3 = nodearraylist1
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction316
+private class ReduceAction308
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15015,318 +9423,184 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwwritablenode6 = nodearraylist2
-                                       assert tkwwritablenode6 isa nullable TKwwritable
-                                       var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode6
-                                       )
-                                       var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist4
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               null,
-                                               null
+                                       var listnode5 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction317
+private class ReduceAction309
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var tkwwritablenode6 = nodearraylist3
-                                       assert tkwwritablenode6 isa nullable TKwwritable
-                                       var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode5,
-                                               tkwwritablenode6
-                                       )
-                                       var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist5
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               null,
-                                               null
+                                       var listnode5 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction318
+private class ReduceAction310
 special 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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist4
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
+                                       var listnode5 = new Array[Object]
+                                       var tkwsupernode3 = nodearraylist1
+                                       assert tkwsupernode3 isa nullable TKwsuper
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
                                                null,
-                                               null
+                                               tkwsupernode3,
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction319
+private class ReduceAction311
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwwritablenode8 = nodearraylist3
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode8
-                                       )
-                                       var tkwredefnode9 = nodearraylist4
-                                       assert tkwredefnode9 isa nullable TKwredef
-                                       var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist6
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               tkwredefnode9,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               null,
-                                               null
+                                       var listnode5 = new Array[Object]
+                                       var pqualifiednode2 = nodearraylist1
+                                       assert pqualifiednode2 isa nullable AQualified
+                                       var tkwsupernode3 = nodearraylist2
+                                       assert tkwsupernode3 isa nullable TKwsuper
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode3,
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction320
+private class ReduceAction312
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var tkwwritablenode8 = nodearraylist4
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode7,
-                                               tkwwritablenode8
-                                       )
-                                       var tkwredefnode9 = nodearraylist5
-                                       assert tkwredefnode9 isa nullable TKwredef
-                                       var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist7
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               tkwredefnode9,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               null,
-                                               null
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwinitnode3 = nodearraylist4
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction321
+private class ReduceAction313
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist5
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               tkwredefnode7,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               null,
-                                               null
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var tkwinitnode3 = nodearraylist1
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction322
+private class ReduceAction314
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwwritablenode8 = nodearraylist4
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode8
-                                       )
-                                       var tkwredefnode9 = nodearraylist5
-                                       assert tkwredefnode9 isa nullable TKwredef
-                                       var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist7
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               tkwredefnode9,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               null,
-                                               null
+                                       var listnode4 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
+                                               pexprnode2,
+                                               listnode4,
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction323
+private class ReduceAction315
 special 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
@@ -15334,53 +9608,34 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var tkwwritablenode8 = nodearraylist5
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode7,
-                                               tkwwritablenode8
-                                       )
-                                       var tkwredefnode9 = nodearraylist6
-                                       assert tkwredefnode9 isa nullable TKwredef
-                                       var pvisibilitynode10 = nodearraylist7
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist8
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist9
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               tkwredefnode9,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               null,
-                                               null
+                                       var listnode6 = new Array[Object]
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tidnode4 = nodearraylist6
+                                       assert tidnode4 isa nullable TId
+                                       var listnode5 = nodearraylist7
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               tidnode4,
+                                               listnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction324
+private class ReduceAction316
 special 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
@@ -15388,596 +9643,227 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist6
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               tkwredefnode7,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               null,
-                                               null
+                                       var pexprnode2 = nodearraylist3
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist7
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ACrangeExpr = new ACrangeExpr.init_acrangeexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction325
+private class ReduceAction317
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwwritablenode6 = nodearraylist2
-                                       assert tkwwritablenode6 isa nullable TKwwritable
-                                       var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode6
-                                       )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist5
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode7,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               null,
-                                               null
+                                       var pexprnode2 = nodearraylist3
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist7
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AOrangeExpr = new AOrangeExpr.init_aorangeexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction326
+private class ReduceAction318
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var tkwwritablenode6 = nodearraylist3
-                                       assert tkwwritablenode6 isa nullable TKwwritable
-                                       var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode5,
-                                               tkwwritablenode6
-                                       )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist6
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode7,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               null,
-                                               null
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var pexprnode1: nullable AArrayExpr = new AArrayExpr.init_aarrayexpr(
+                                               listnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction327
+private class ReduceAction319
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null
+                                       var tkwselfnode2 = nodearraylist1
+                                       assert tkwselfnode2 isa nullable TKwself
+                                       var pexprnode1: nullable ASelfExpr = new ASelfExpr.init_aselfexpr(
+                                               tkwselfnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction328
+private class ReduceAction320
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwwritablenode8 = nodearraylist3
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode8
-                                       )
-                                       var pvisibilitynode10 = nodearraylist4
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist5
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist6
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ptypenode13 = nodearraylist7
-                                       assert ptypenode13 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               null,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               null
+                                       var tkwtruenode2 = nodearraylist1
+                                       assert tkwtruenode2 isa nullable TKwtrue
+                                       var pexprnode1: nullable ATrueExpr = new ATrueExpr.init_atrueexpr(
+                                               tkwtruenode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction329
+private class ReduceAction321
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var tkwwritablenode8 = nodearraylist4
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode7,
-                                               tkwwritablenode8
-                                       )
-                                       var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist6
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ptypenode13 = nodearraylist8
-                                       assert ptypenode13 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               null,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               null
+                                       var tkwfalsenode2 = nodearraylist1
+                                       assert tkwfalsenode2 isa nullable TKwfalse
+                                       var pexprnode1: nullable AFalseExpr = new AFalseExpr.init_afalseexpr(
+                                               tkwfalsenode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction330
+private class ReduceAction322
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist4
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ptypenode11 = nodearraylist6
-                                       assert ptypenode11 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               null,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               null
+                                       var tkwnullnode2 = nodearraylist1
+                                       assert tkwnullnode2 isa nullable TKwnull
+                                       var pexprnode1: nullable ANullExpr = new ANullExpr.init_anullexpr(
+                                               tkwnullnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction331
+private class ReduceAction323
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwwritablenode8 = nodearraylist4
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode8
-                                       )
-                                       var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist6
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ptypenode13 = nodearraylist8
-                                       assert ptypenode13 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               null,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               null
+                                       var tnumbernode2 = nodearraylist1
+                                       assert tnumbernode2 isa nullable TNumber
+                                       var pexprnode1: nullable AIntExpr = new AIntExpr.init_aintexpr(
+                                               tnumbernode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction332
+private class ReduceAction324
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var tkwwritablenode8 = nodearraylist5
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode7,
-                                               tkwwritablenode8
-                                       )
-                                       var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist7
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ptypenode13 = nodearraylist9
-                                       assert ptypenode13 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               null,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               null
+                                       var tfloatnode2 = nodearraylist1
+                                       assert tfloatnode2 isa nullable TFloat
+                                       var pexprnode1: nullable AFloatExpr = new AFloatExpr.init_afloatexpr(
+                                               tfloatnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction333
+private class ReduceAction325
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist5
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ptypenode11 = nodearraylist7
-                                       assert ptypenode11 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               null,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               null
+                                       var tcharnode2 = nodearraylist1
+                                       assert tcharnode2 isa nullable TChar
+                                       var pexprnode1: nullable ACharExpr = new ACharExpr.init_acharexpr(
+                                               tcharnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction334
+private class ReduceAction326
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwwritablenode6 = nodearraylist2
-                                       assert tkwwritablenode6 isa nullable TKwwritable
-                                       var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode6
-                                       )
-                                       var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist4
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ptypenode11 = nodearraylist6
-                                       assert ptypenode11 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               null
+                                       var tstringnode2 = nodearraylist1
+                                       assert tstringnode2 isa nullable TString
+                                       var pexprnode1: nullable AStringExpr = new AStringExpr.init_astringexpr(
+                                               tstringnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction335
+private class ReduceAction327
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var tkwwritablenode6 = nodearraylist3
-                                       assert tkwwritablenode6 isa nullable TKwwritable
-                                       var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode5,
-                                               tkwwritablenode6
-                                       )
-                                       var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist5
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ptypenode11 = nodearraylist7
-                                       assert ptypenode11 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction336
+private class ReduceAction328
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist4
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               ptypenode9,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist2
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction337
+private class ReduceAction329
 special 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
@@ -15986,51 +9872,30 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwwritablenode8 = nodearraylist3
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode8
-                                       )
-                                       var tkwredefnode9 = nodearraylist4
-                                       assert tkwredefnode9 isa nullable TKwredef
-                                       var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist6
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ptypenode13 = nodearraylist8
-                                       assert ptypenode13 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               tkwredefnode9,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwasnode3 = nodearraylist4
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var ptypenode4 = nodearraylist8
+                                       assert ptypenode4 isa nullable AType
+                                       var pexprnode1: nullable AAsCastExpr = new AAsCastExpr.init_aascastexpr(
+                                               pexprnode2,
+                                               tkwasnode3,
+                                               ptypenode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction338
+private class ReduceAction330
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -16040,1465 +9905,657 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var tkwwritablenode8 = nodearraylist4
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode7,
-                                               tkwwritablenode8
-                                       )
-                                       var tkwredefnode9 = nodearraylist5
-                                       assert tkwredefnode9 isa nullable TKwredef
-                                       var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist7
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ptypenode13 = nodearraylist9
-                                       assert ptypenode13 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               tkwredefnode9,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwasnode3 = nodearraylist4
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var tkwnotnode4 = nodearraylist8
+                                       assert tkwnotnode4 isa nullable TKwnot
+                                       var tkwnullnode5 = nodearraylist10
+                                       assert tkwnullnode5 isa nullable TKwnull
+                                       var pexprnode1: nullable AAsNotnullExpr = new AAsNotnullExpr.init_aasnotnullexpr(
+                                               pexprnode2,
+                                               tkwasnode3,
+                                               tkwnotnode4,
+                                               tkwnullnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction339
+private class ReduceAction331
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist5
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ptypenode11 = nodearraylist7
-                                       assert ptypenode11 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               tkwredefnode7,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               null
+                                       var listnode4 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       listnode4 = concat(listnode4, listnode2)
+                                       if pexprnode3 != null then
+                                               listnode4.add(pexprnode3)
+                                       end
+                                       var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
+                                               listnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(61), node_list)
        end
 init do end
 end
-private class ReduceAction340
+private class ReduceAction332
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwwritablenode8 = nodearraylist4
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode8
-                                       )
-                                       var tkwredefnode9 = nodearraylist5
-                                       assert tkwredefnode9 isa nullable TKwredef
-                                       var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist7
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ptypenode13 = nodearraylist9
-                                       assert ptypenode13 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               tkwredefnode9,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               null
+                                       var listnode5 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       listnode5 = concat(listnode5, listnode2)
+                                       listnode5 = concat(listnode5, listnode3)
+                                       if pexprnode4 != null then
+                                               listnode5.add(pexprnode4)
+                                       end
+                                       var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(61), node_list)
        end
 init do end
 end
-private class ReduceAction341
+private class ReduceAction333
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var tkwwritablenode8 = nodearraylist5
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode7,
-                                               tkwwritablenode8
-                                       )
-                                       var tkwredefnode9 = nodearraylist6
-                                       assert tkwredefnode9 isa nullable TKwredef
-                                       var pvisibilitynode10 = nodearraylist7
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist8
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist9
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ptypenode13 = nodearraylist10
-                                       assert ptypenode13 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               tkwredefnode9,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       var pexprnode2 = nodearraylist3
+                                       assert pexprnode2 isa nullable AExpr
+                                       if pexprnode1 != null then
+                                               listnode3.add(pexprnode1)
+                                       end
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(62), node_list)
        end
 init do end
 end
-private class ReduceAction342
+private class ReduceAction334
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist6
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ptypenode11 = nodearraylist8
-                                       assert ptypenode11 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               tkwredefnode7,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               null
+                                       var tstartstringnode2 = nodearraylist1
+                                       assert tstartstringnode2 isa nullable TStartString
+                                       var pexprnode1: nullable AStartStringExpr = new AStartStringExpr.init_astartstringexpr(
+                                               tstartstringnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(63), node_list)
        end
 init do end
 end
-private class ReduceAction343
+private class ReduceAction335
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwwritablenode6 = nodearraylist2
-                                       assert tkwwritablenode6 isa nullable TKwwritable
-                                       var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode6
-                                       )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist5
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ptypenode11 = nodearraylist7
-                                       assert ptypenode11 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode7,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       var pexprnode2 = nodearraylist3
+                                       assert pexprnode2 isa nullable AExpr
+                                       if pexprnode1 != null then
+                                               listnode3.add(pexprnode1)
+                                       end
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(64), node_list)
        end
 init do end
 end
-private class ReduceAction344
+private class ReduceAction336
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var tkwwritablenode6 = nodearraylist3
-                                       assert tkwwritablenode6 isa nullable TKwwritable
-                                       var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode5,
-                                               tkwwritablenode6
-                                       )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist6
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ptypenode11 = nodearraylist8
-                                       assert ptypenode11 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode7,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               null
+                                       var tmidstringnode2 = nodearraylist1
+                                       assert tmidstringnode2 isa nullable TMidString
+                                       var pexprnode1: nullable AMidStringExpr = new AMidStringExpr.init_amidstringexpr(
+                                               tmidstringnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(65), node_list)
        end
 init do end
 end
-private class ReduceAction345
+private class ReduceAction337
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               ptypenode9,
-                                               null
+                                       var tendstringnode2 = nodearraylist1
+                                       assert tendstringnode2 isa nullable TEndString
+                                       var pexprnode1: nullable AEndStringExpr = new AEndStringExpr.init_aendstringexpr(
+                                               tendstringnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(66), node_list)
        end
 init do end
 end
-private class ReduceAction346
+private class ReduceAction338
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwwritablenode8 = nodearraylist3
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode8
-                                       )
-                                       var pvisibilitynode10 = nodearraylist4
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist5
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist6
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var pexprnode14 = nodearraylist9
-                                       assert pexprnode14 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               null,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               null,
-                                               pexprnode14
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa nullable AExpr
+                                       if pexprnode1 != null then
+                                               listnode2.add(pexprnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(67), node_list)
        end
 init do end
 end
-private class ReduceAction347
+private class ReduceAction339
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var tkwwritablenode8 = nodearraylist4
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode7,
-                                               tkwwritablenode8
-                                       )
-                                       var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist6
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var pexprnode14 = nodearraylist10
-                                       assert pexprnode14 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               null,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               null,
-                                               pexprnode14
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa nullable AExpr
+                                       var listnode2 = nodearraylist5
+                                       assert listnode2 isa Array[Object]
+                                       if pexprnode1 != null then
+                                               listnode3.add(pexprnode1)
+                                       end
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
+                                       p.push(p.go_to(67), node_list)
        end
 init do end
 end
-private class ReduceAction348
+private class ReduceAction340
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist4
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               null,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode1 = new Array[Object]
+                                       node_list = listnode1
+                                       p.push(p.go_to(67), node_list)
        end
 init do end
 end
-private class ReduceAction349
+private class ReduceAction341
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwwritablenode8 = nodearraylist4
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode8
-                                       )
-                                       var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist6
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var pexprnode14 = nodearraylist10
-                                       assert pexprnode14 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               null,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               null,
-                                               pexprnode14
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode1 = new Array[Object]
+                                       node_list = listnode1
+                                       p.push(p.go_to(67), node_list)
        end
 init do end
 end
-private class ReduceAction350
+private class ReduceAction342
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var tkwwritablenode8 = nodearraylist5
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode7,
-                                               tkwwritablenode8
-                                       )
-                                       var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist7
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var pexprnode14 = nodearraylist11
-                                       assert pexprnode14 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               null,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               null,
-                                               pexprnode14
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa nullable AExpr
+                                       if pexprnode1 != null then
+                                               listnode2.add(pexprnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(68), node_list)
        end
 init do end
 end
-private class ReduceAction351
+private class ReduceAction343
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist5
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               null,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa nullable AExpr
+                                       var listnode2 = nodearraylist5
+                                       assert listnode2 isa Array[Object]
+                                       if pexprnode1 != null then
+                                               listnode3.add(pexprnode1)
+                                       end
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
+                                       p.push(p.go_to(68), node_list)
        end
 init do end
 end
-private class ReduceAction352
+private class ReduceAction344
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwwritablenode6 = nodearraylist2
-                                       assert tkwwritablenode6 isa nullable TKwwritable
-                                       var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode6
-                                       )
-                                       var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist4
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       if pexprnode1 != null then
+                                               listnode2.add(pexprnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(68), node_list)
        end
 init do end
 end
-private class ReduceAction353
+private class ReduceAction345
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var tkwwritablenode6 = nodearraylist3
-                                       assert tkwwritablenode6 isa nullable TKwwritable
-                                       var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode5,
-                                               tkwwritablenode6
-                                       )
-                                       var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist5
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode1 = new Array[Object]
+                                       node_list = listnode1
+                                       p.push(p.go_to(68), node_list)
        end
 init do end
 end
-private class ReduceAction354
+private class ReduceAction346
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var listnode1 = new Array[Object]
+                                       node_list = listnode1
+                                       p.push(p.go_to(68), node_list)
+       end
+init do end
+end
+private class ReduceAction347
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist4
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode10 = nodearraylist7
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               pexprnode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa nullable AExpr
+                                       if pexprnode1 != null then
+                                               listnode2.add(pexprnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(69), node_list)
        end
 init do end
 end
-private class ReduceAction355
+private class ReduceAction348
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwwritablenode8 = nodearraylist3
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode8
-                                       )
-                                       var tkwredefnode9 = nodearraylist4
-                                       assert tkwredefnode9 isa nullable TKwredef
-                                       var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist6
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var pexprnode14 = nodearraylist10
-                                       assert pexprnode14 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               tkwredefnode9,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               null,
-                                               pexprnode14
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa nullable AExpr
+                                       var listnode2 = nodearraylist5
+                                       assert listnode2 isa Array[Object]
+                                       if pexprnode1 != null then
+                                               listnode3.add(pexprnode1)
+                                       end
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
+                                       p.push(p.go_to(69), node_list)
        end
 init do end
 end
-private class ReduceAction356
+private class ReduceAction349
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var tkwwritablenode8 = nodearraylist4
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode7,
-                                               tkwwritablenode8
-                                       )
-                                       var tkwredefnode9 = nodearraylist5
-                                       assert tkwredefnode9 isa nullable TKwredef
-                                       var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist7
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var pexprnode14 = nodearraylist11
-                                       assert pexprnode14 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               tkwredefnode9,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               null,
-                                               pexprnode14
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(70), node_list)
        end
 init do end
 end
-private class ReduceAction357
+private class ReduceAction350
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist5
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               tkwredefnode7,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode2 = new Array[Object]
+                                       var listnode1 = nodearraylist2
+                                       assert listnode1 isa Array[Object]
+                                       listnode2 = concat(listnode2, listnode1)
+                                       node_list = listnode2
+                                       p.push(p.go_to(71), node_list)
        end
 init do end
 end
-private class ReduceAction358
+private class ReduceAction351
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwwritablenode8 = nodearraylist4
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode8
-                                       )
-                                       var tkwredefnode9 = nodearraylist5
-                                       assert tkwredefnode9 isa nullable TKwredef
-                                       var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist7
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var pexprnode14 = nodearraylist11
-                                       assert pexprnode14 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               tkwredefnode9,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               null,
-                                               pexprnode14
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode2 = new Array[Object]
+                                       var listnode1 = nodearraylist1
+                                       assert listnode1 isa Array[Object]
+                                       listnode2 = concat(listnode2, listnode1)
+                                       node_list = listnode2
+                                       p.push(p.go_to(71), node_list)
        end
 init do end
 end
-private class ReduceAction359
+private class ReduceAction352
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var tkwwritablenode8 = nodearraylist5
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode7,
-                                               tkwwritablenode8
-                                       )
-                                       var tkwredefnode9 = nodearraylist6
-                                       assert tkwredefnode9 isa nullable TKwredef
-                                       var pvisibilitynode10 = nodearraylist7
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist8
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist9
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var pexprnode14 = nodearraylist12
-                                       assert pexprnode14 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               tkwredefnode9,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               null,
-                                               pexprnode14
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode2 = new Array[Object]
+                                       var tidnode1 = nodearraylist1
+                                       assert tidnode1 isa nullable TId
+                                       if tidnode1 != null then
+                                               listnode2.add(tidnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(72), node_list)
        end
 init do end
 end
-private class ReduceAction360
+private class ReduceAction353
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist6
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               tkwredefnode7,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var listnode3 = new Array[Object]
+                                       var listnode1 = nodearraylist1
+                                       assert listnode1 isa Array[Object]
+                                       var tidnode2 = nodearraylist5
+                                       assert tidnode2 isa nullable TId
+                                       listnode3 = concat(listnode3, listnode1)
+                                       if tidnode2 != null then
+                                               listnode3.add(tidnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(72), node_list)
        end
 init do end
 end
-private class ReduceAction361
+private class ReduceAction354
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwwritablenode6 = nodearraylist2
-                                       assert tkwwritablenode6 isa nullable TKwwritable
-                                       var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode6
-                                       )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist5
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode7,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               null,
-                                               pexprnode12
+                                       var listnode2 = new Array[Object]
+                                       var tclassidnode3 = nodearraylist1
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode2,
+                                               tclassidnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pqualifiednode1
+                                       p.push(p.go_to(73), node_list)
        end
 init do end
 end
-private class ReduceAction362
+private class ReduceAction355
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var tkwwritablenode6 = nodearraylist3
-                                       assert tkwwritablenode6 isa nullable TKwwritable
-                                       var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode5,
-                                               tkwwritablenode6
-                                       )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist6
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode7,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               null,
-                                               pexprnode12
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var tclassidnode4 = nodearraylist2
+                                       assert tclassidnode4 isa nullable TClassid
+                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode3,
+                                               tclassidnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pqualifiednode1
+                                       p.push(p.go_to(73), node_list)
        end
 init do end
 end
-private class ReduceAction363
+private class ReduceAction356
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode10 = nodearraylist8
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               pexprnode10
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode3,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pqualifiednode1
+                                       p.push(p.go_to(73), node_list)
        end
 init do end
 end
-private class ReduceAction364
+private class ReduceAction357
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwwritablenode8 = nodearraylist3
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode8
-                                       )
-                                       var pvisibilitynode10 = nodearraylist4
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist5
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist6
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ptypenode13 = nodearraylist7
-                                       assert ptypenode13 isa nullable AType
-                                       var pexprnode14 = nodearraylist10
-                                       assert pexprnode14 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               null,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var tidnode1 = nodearraylist1
+                                       assert tidnode1 isa nullable TId
+                                       node_list = tidnode1
+                                       p.push(p.go_to(74), node_list)
        end
 init do end
 end
-private class ReduceAction365
+private class ReduceAction358
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var tkwwritablenode8 = nodearraylist4
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode7,
-                                               tkwwritablenode8
-                                       )
-                                       var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist6
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ptypenode13 = nodearraylist8
-                                       assert ptypenode13 isa nullable AType
-                                       var pexprnode14 = nodearraylist11
-                                       assert pexprnode14 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               null,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var tclassidnode1 = nodearraylist1
+                                       assert tclassidnode1 isa nullable TClassid
+                                       node_list = tclassidnode1
+                                       p.push(p.go_to(75), node_list)
        end
 init do end
 end
-private class ReduceAction366
+private class ReduceAction359
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction360
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction361
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var pdocnode1: nullable ADoc = new ADoc.init_adoc(
+                                               listnode3
+                                       )
+                                       node_list = pdocnode1
+                                       p.push(p.go_to(77), node_list)
+       end
+init do end
+end
+private class ReduceAction362
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist4
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ptypenode11 = nodearraylist6
-                                       assert ptypenode11 isa nullable AType
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               null,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist2
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var pdocnode1: nullable ADoc = new ADoc.init_adoc(
+                                               listnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pdocnode1
+                                       p.push(p.go_to(77), node_list)
+       end
+init do end
+end
+private class ReduceAction363
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       node_list = null
+                                       p.push(p.go_to(77), node_list)
+       end
+init do end
+end
+private class ReduceAction364
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       node_list = null
+                                       p.push(p.go_to(78), node_list)
+       end
+init do end
+end
+private class ReduceAction365
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode1 = nodearraylist1
+                                       assert pdocnode1 isa nullable ADoc
+                                       node_list = pdocnode1
+                                       p.push(p.go_to(78), node_list)
+       end
+init do end
+end
+private class ReduceAction366
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       p.push(p.go_to(79), node_list)
        end
 init do end
 end
@@ -17507,56 +10564,10 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwwritablenode8 = nodearraylist4
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode8
-                                       )
-                                       var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist6
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ptypenode13 = nodearraylist8
-                                       assert ptypenode13 isa nullable AType
-                                       var pexprnode14 = nodearraylist11
-                                       assert pexprnode14 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               null,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(79), node_list)
        end
 init do end
 end
@@ -17565,59 +10576,8 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var tkwwritablenode8 = nodearraylist5
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode7,
-                                               tkwwritablenode8
-                                       )
-                                       var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist7
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ptypenode13 = nodearraylist9
-                                       assert ptypenode13 isa nullable AType
-                                       var pexprnode14 = nodearraylist12
-                                       assert pexprnode14 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               null,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(79), node_list)
        end
 init do end
 end
@@ -17626,49 +10586,12 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist5
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ptypenode11 = nodearraylist7
-                                       assert ptypenode11 isa nullable AType
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               null,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
-                                       )
+                                       var ppropdefnode1 = nodearraylist1
+                                       assert ppropdefnode1 isa nullable APropdef
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(80), node_list)
        end
 init do end
 end
@@ -17677,8 +10600,6 @@ special 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
@@ -17688,35 +10609,27 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwwritablenode6 = nodearraylist2
-                                       assert tkwwritablenode6 isa nullable TKwwritable
-                                       var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode6
-                                       )
-                                       var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist4
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ptypenode11 = nodearraylist6
-                                       assert ptypenode11 isa nullable AType
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
                                                pdocnode2,
                                                null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(81), node_list)
        end
 init do end
 end
@@ -17725,8 +10638,6 @@ special 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
@@ -17737,37 +10648,29 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var tkwwritablenode6 = nodearraylist3
-                                       assert tkwwritablenode6 isa nullable TKwwritable
-                                       var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode5,
-                                               tkwwritablenode6
-                                       )
-                                       var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist5
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ptypenode11 = nodearraylist7
-                                       assert ptypenode11 isa nullable AType
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
                                                pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(81), node_list)
        end
 init do end
 end
@@ -17786,29 +10689,27 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist4
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa nullable AType
-                                       var pexprnode10 = nodearraylist8
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
                                                pdocnode2,
                                                null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               ptypenode9,
-                                               pexprnode10
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(81), node_list)
        end
 init do end
 end
@@ -17817,8 +10718,6 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -17830,55 +10729,37 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwwritablenode8 = nodearraylist3
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode8
-                                       )
-                                       var tkwredefnode9 = nodearraylist4
-                                       assert tkwredefnode9 isa nullable TKwredef
-                                       var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist6
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ptypenode13 = nodearraylist8
-                                       assert ptypenode13 isa nullable AType
-                                       var pexprnode14 = nodearraylist11
-                                       assert pexprnode14 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               tkwredefnode9,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(81), node_list)
+       end
+init do end
 end
 private class ReduceAction374
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -17889,45 +10770,27 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var tkwwritablenode8 = nodearraylist4
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode7,
-                                               tkwwritablenode8
-                                       )
-                                       var tkwredefnode9 = nodearraylist5
-                                       assert tkwredefnode9 isa nullable TKwredef
-                                       var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist7
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ptypenode13 = nodearraylist9
-                                       assert ptypenode13 isa nullable AType
-                                       var pexprnode14 = nodearraylist12
-                                       assert pexprnode14 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
                                                pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               tkwredefnode9,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(81), node_list)
        end
 init do end
 end
@@ -17936,7 +10799,6 @@ special 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
@@ -17948,37 +10810,29 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwreadablenode5 = nodearraylist2
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist5
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ptypenode11 = nodearraylist7
-                                       assert ptypenode11 isa nullable AType
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist9
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
                                                pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               tkwredefnode7,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(81), node_list)
        end
 init do end
 end
@@ -17987,11 +10841,6 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -18001,45 +10850,25 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwwritablenode8 = nodearraylist4
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode8
-                                       )
-                                       var tkwredefnode9 = nodearraylist5
-                                       assert tkwredefnode9 isa nullable TKwredef
-                                       var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist7
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ptypenode13 = nodearraylist9
-                                       assert ptypenode13 isa nullable AType
-                                       var pexprnode14 = nodearraylist12
-                                       assert pexprnode14 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               tkwredefnode9,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(81), node_list)
        end
 init do end
 end
@@ -18048,11 +10877,6 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -18063,47 +10887,27 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var tkwwritablenode8 = nodearraylist5
-                                       assert tkwwritablenode8 isa nullable TKwwritable
-                                       var pablenode6: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode7,
-                                               tkwwritablenode8
-                                       )
-                                       var tkwredefnode9 = nodearraylist6
-                                       assert tkwredefnode9 isa nullable TKwredef
-                                       var pvisibilitynode10 = nodearraylist7
-                                       assert pvisibilitynode10 isa nullable AVisibility
-                                       var tkwvarnode11 = nodearraylist8
-                                       assert tkwvarnode11 isa nullable TKwvar
-                                       var tattridnode12 = nodearraylist9
-                                       assert tattridnode12 isa nullable TAttrid
-                                       var ptypenode13 = nodearraylist10
-                                       assert ptypenode13 isa nullable AType
-                                       var pexprnode14 = nodearraylist13
-                                       assert pexprnode14 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
-                                               pablenode3,
-                                               pablenode6,
-                                               tkwredefnode9,
-                                               pvisibilitynode10,
-                                               tkwvarnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(81), node_list)
        end
 init do end
 end
@@ -18112,9 +10916,6 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -18125,39 +10926,27 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode4 = nodearraylist2
-                                       assert tkwredefnode4 isa nullable TKwredef
-                                       var tkwreadablenode5 = nodearraylist3
-                                       assert tkwreadablenode5 isa nullable TKwreadable
-                                       var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode4,
-                                               tkwreadablenode5
-                                       )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist6
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ptypenode11 = nodearraylist8
-                                       assert ptypenode11 isa nullable AType
-                                       var pexprnode12 = nodearraylist11
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var tstringnode8 = nodearraylist8
+                                       assert tstringnode8 isa nullable TString
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
-                                               pablenode3,
                                                null,
-                                               tkwredefnode7,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               tstringnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(81), node_list)
        end
 init do end
 end
@@ -18166,7 +10955,6 @@ special 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
@@ -18178,37 +10966,29 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var tkwwritablenode6 = nodearraylist2
-                                       assert tkwwritablenode6 isa nullable TKwwritable
-                                       var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               tkwwritablenode6
-                                       )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist5
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ptypenode11 = nodearraylist7
-                                       assert ptypenode11 isa nullable AType
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var tstringnode8 = nodearraylist9
+                                       assert tstringnode8 isa nullable TString
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode7,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               tstringnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(81), node_list)
        end
 init do end
 end
@@ -18217,52 +10997,22 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var tkwwritablenode6 = nodearraylist3
-                                       assert tkwwritablenode6 isa nullable TKwwritable
-                                       var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode5,
-                                               tkwwritablenode6
-                                       )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa nullable TKwredef
-                                       var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable AVisibility
-                                       var tkwvarnode9 = nodearraylist6
-                                       assert tkwvarnode9 isa nullable TKwvar
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa nullable TAttrid
-                                       var ptypenode11 = nodearraylist8
-                                       assert ptypenode11 isa nullable AType
-                                       var pexprnode12 = nodearraylist11
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode7,
-                                               pvisibilitynode8,
-                                               tkwvarnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                       var listnode2 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var ptypenode3 = nodearraylist1
+                                       assert ptypenode3 isa nullable AType
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               listnode2,
+                                               ptypenode3,
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
@@ -18271,42 +11021,26 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa nullable AType
-                                       var pexprnode10 = nodearraylist9
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               ptypenode9,
-                                               pexprnode10
+                                       var listnode3 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var ptypenode4 = nodearraylist2
+                                       assert ptypenode4 isa nullable AType
+                                       var listnode5 = nodearraylist3
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               listnode3,
+                                               ptypenode4,
+                                               listnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
@@ -18315,71 +11049,44 @@ special 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 nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var listnode4 = new Array[Object]
+                                       var ptypenode3 = nodearraylist1
+                                       assert ptypenode3 isa nullable AType
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               listnode2,
+                                               ptypenode3,
+                                               listnode4
+                                       )
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(82), node_list)
+       end
+init do end
+end
+private class ReduceAction383
+special 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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode8 = nodearraylist6
-                                       assert pexprnode8 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction383
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode8
+                                       var listnode3 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var ptypenode4 = nodearraylist2
+                                       assert ptypenode4 isa nullable AType
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               listnode3,
+                                               ptypenode4,
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
@@ -18388,39 +11095,17 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
+                                       var listnode4 = new Array[Object]
+                                       var tclassidnode3 = nodearraylist1
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var ptypenode1: nullable AType = new AType.init_atype(
                                                null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               tclassidnode3,
+                                               listnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(83), node_list)
        end
 init do end
 end
@@ -18429,39 +11114,20 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tplusnode7 = nodearraylist4
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var listnode4 = new Array[Object]
+                                       var tkwnullablenode2 = nodearraylist1
+                                       assert tkwnullablenode2 isa nullable TKwnullable
+                                       var tclassidnode3 = nodearraylist2
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               tkwnullablenode2,
+                                               tclassidnode3,
+                                               listnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(83), node_list)
        end
 init do end
 end
@@ -18470,39 +11136,11 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tminusnode7 = nodearraylist4
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
@@ -18511,39 +11149,32 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tstarnode7 = nodearraylist4
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var listnode5 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var listnode6 = nodearraylist6
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode7
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
@@ -18552,39 +11183,29 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tslashnode7 = nodearraylist4
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var listnode5 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var listnode6 = nodearraylist3
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
@@ -18593,39 +11214,11 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tpercentnode7 = nodearraylist4
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
@@ -18634,6 +11227,10 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -18641,32 +11238,28 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var teqnode7 = nodearraylist4
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var tkwelsenode6 = nodearraylist9
+                                       assert tkwelsenode6 isa nullable TKwelse
+                                       var pexprnode7 = nodearraylist11
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfexprExpr = new AIfexprExpr.init_aifexprexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               tkwelsenode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
@@ -18675,39 +11268,11 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tnenode7 = nodearraylist4
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(86), node_list)
        end
 init do end
 end
@@ -18716,39 +11281,20 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tlenode7 = nodearraylist4
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(86), node_list)
        end
 init do end
 end
@@ -18757,39 +11303,20 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tgenode7 = nodearraylist4
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(86), node_list)
        end
 init do end
 end
@@ -18798,39 +11325,21 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tltnode7 = nodearraylist4
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist5
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AOrElseExpr = new AOrElseExpr.init_aorelseexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(86), node_list)
        end
 init do end
 end
@@ -18839,39 +11348,11 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tgtnode7 = nodearraylist4
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
@@ -18880,43 +11361,19 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist8
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
+                                       var tkwnotnode2 = nodearraylist1
+                                       assert tkwnotnode2 isa nullable TKwnot
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ANotExpr = new ANotExpr.init_anotexpr(
+                                               tkwnotnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
@@ -18925,39 +11382,11 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tstarshipnode7 = nodearraylist4
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
@@ -18966,43 +11395,20 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist5
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist8
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
@@ -19011,48 +11417,21 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist6
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist7
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode10,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AEeExpr = new AEeExpr.init_aeeexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(88), node_list)
+       end
 init do end
 end
 private class ReduceAction400
@@ -19060,42 +11439,20 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
@@ -19104,42 +11461,20 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tplusnode7 = nodearraylist5
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
@@ -19148,42 +11483,20 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tminusnode7 = nodearraylist5
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
@@ -19192,42 +11505,20 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tstarnode7 = nodearraylist5
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
@@ -19236,42 +11527,20 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tslashnode7 = nodearraylist5
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
@@ -19280,42 +11549,20 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tpercentnode7 = nodearraylist5
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
@@ -19324,42 +11571,20 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var teqnode7 = nodearraylist5
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var ptypenode3 = nodearraylist4
+                                       assert ptypenode3 isa nullable AType
+                                       var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
+                                               pexprnode2,
+                                               ptypenode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
@@ -19368,42 +11593,11 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tnenode7 = nodearraylist5
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
@@ -19412,42 +11606,20 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tlenode7 = nodearraylist5
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
@@ -19456,42 +11628,20 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tgenode7 = nodearraylist5
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
@@ -19500,42 +11650,11 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tltnode7 = nodearraylist5
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
        end
 init do end
 end
@@ -19544,42 +11663,20 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tgtnode7 = nodearraylist5
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
        end
 init do end
 end
@@ -19588,46 +11685,20 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist9
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
        end
 init do end
 end
@@ -19636,42 +11707,20 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tstarshipnode7 = nodearraylist5
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
        end
 init do end
 end
@@ -19680,46 +11729,11 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist6
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist9
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(91), node_list)
        end
 init do end
 end
@@ -19728,50 +11742,19 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist7
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist8
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var pexprnode11 = nodearraylist10
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode10,
-                                               pexprnode11
+                                       var tminusnode2 = nodearraylist1
+                                       assert tminusnode2 isa nullable TMinus
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
+                                               tminusnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(91), node_list)
        end
 init do end
 end
@@ -19780,34 +11763,19 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode8 = nodearraylist6
-                                       assert pexprnode8 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode8
+                                       var tkwoncenode2 = nodearraylist1
+                                       assert tkwoncenode2 isa nullable TKwonce
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
+                                               tkwoncenode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(91), node_list)
        end
 init do end
 end
@@ -19816,37 +11784,11 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
@@ -19855,40 +11797,26 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
+                                       var listnode6 = new Array[Object]
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               listnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
@@ -19897,40 +11825,24 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tplusnode7 = nodearraylist4
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tattridnode4 = nodearraylist5
+                                       assert tattridnode4 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
@@ -19939,40 +11851,21 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tminusnode7 = nodearraylist4
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var tattridnode4 = nodearraylist2
+                                       assert tattridnode4 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
@@ -19981,40 +11874,20 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tstarnode7 = nodearraylist4
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist4
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20023,40 +11896,17 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tslashnode7 = nodearraylist4
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var tattridnode3 = nodearraylist1
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20065,40 +11915,28 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tpercentnode7 = nodearraylist4
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var listnode5 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20107,40 +11945,25 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var teqnode7 = nodearraylist4
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var listnode5 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20149,40 +11972,21 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tnenode7 = nodearraylist4
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
+                                       var listnode5 = new Array[Object]
+                                       var tkwsupernode3 = nodearraylist1
+                                       assert tkwsupernode3 isa nullable TKwsuper
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
                                                null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                               tkwsupernode3,
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20191,40 +11995,24 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tlenode7 = nodearraylist4
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var listnode5 = new Array[Object]
+                                       var pqualifiednode2 = nodearraylist1
+                                       assert pqualifiednode2 isa nullable AQualified
+                                       var tkwsupernode3 = nodearraylist2
+                                       assert tkwsupernode3 isa nullable TKwsuper
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode3,
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20233,40 +12021,26 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tgenode7 = nodearraylist4
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwinitnode3 = nodearraylist4
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20275,40 +12049,23 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tltnode7 = nodearraylist4
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var tkwinitnode3 = nodearraylist1
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20317,7 +12074,6 @@ special 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
@@ -20325,32 +12081,24 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tgtnode7 = nodearraylist4
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var listnode6 = new Array[Object]
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tidnode4 = nodearraylist6
+                                       assert tidnode4 isa nullable TId
+                                       var listnode5 = nodearraylist7
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               tidnode4,
+                                               listnode6
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20359,44 +12107,14 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist8
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
+                                       var tkwselfnode2 = nodearraylist1
+                                       assert tkwselfnode2 isa nullable TKwself
+                                       var pexprnode1: nullable ASelfExpr = new ASelfExpr.init_aselfexpr(
+                                               tkwselfnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20405,40 +12123,14 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tstarshipnode7 = nodearraylist4
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tkwtruenode2 = nodearraylist1
+                                       assert tkwtruenode2 isa nullable TKwtrue
+                                       var pexprnode1: nullable ATrueExpr = new ATrueExpr.init_atrueexpr(
+                                               tkwtruenode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20447,44 +12139,14 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist5
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist8
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
+                                       var tkwfalsenode2 = nodearraylist1
+                                       assert tkwfalsenode2 isa nullable TKwfalse
+                                       var pexprnode1: nullable AFalseExpr = new AFalseExpr.init_afalseexpr(
+                                               tkwfalsenode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20493,48 +12155,14 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist6
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist7
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode10,
-                                               pexprnode11
+                                       var tkwnullnode2 = nodearraylist1
+                                       assert tkwnullnode2 isa nullable TKwnull
+                                       var pexprnode1: nullable ANullExpr = new ANullExpr.init_anullexpr(
+                                               tkwnullnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20543,43 +12171,14 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tnumbernode2 = nodearraylist1
+                                       assert tnumbernode2 isa nullable TNumber
+                                       var pexprnode1: nullable AIntExpr = new AIntExpr.init_aintexpr(
+                                               tnumbernode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20588,43 +12187,14 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tplusnode7 = nodearraylist5
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tfloatnode2 = nodearraylist1
+                                       assert tfloatnode2 isa nullable TFloat
+                                       var pexprnode1: nullable AFloatExpr = new AFloatExpr.init_afloatexpr(
+                                               tfloatnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20633,43 +12203,14 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tminusnode7 = nodearraylist5
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tcharnode2 = nodearraylist1
+                                       assert tcharnode2 isa nullable TChar
+                                       var pexprnode1: nullable ACharExpr = new ACharExpr.init_acharexpr(
+                                               tcharnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20678,43 +12219,14 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tstarnode7 = nodearraylist5
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var tstringnode2 = nodearraylist1
+                                       assert tstringnode2 isa nullable TString
+                                       var pexprnode1: nullable AStringExpr = new AStringExpr.init_astringexpr(
+                                               tstringnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20723,43 +12235,11 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tslashnode7 = nodearraylist5
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20768,43 +12248,13 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tpercentnode7 = nodearraylist5
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist2
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20813,6 +12263,7 @@ special 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
@@ -20822,34 +12273,19 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var teqnode7 = nodearraylist5
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwasnode3 = nodearraylist4
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var ptypenode4 = nodearraylist8
+                                       assert ptypenode4 isa nullable AType
+                                       var pexprnode1: nullable AAsCastExpr = new AAsCastExpr.init_aascastexpr(
+                                               pexprnode2,
+                                               tkwasnode3,
+                                               ptypenode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20858,6 +12294,9 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -20867,34 +12306,22 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tnenode7 = nodearraylist5
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwasnode3 = nodearraylist4
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var tkwnotnode4 = nodearraylist8
+                                       assert tkwnotnode4 isa nullable TKwnot
+                                       var tkwnullnode5 = nodearraylist10
+                                       assert tkwnullnode5 isa nullable TKwnull
+                                       var pexprnode1: nullable AAsNotnullExpr = new AAsNotnullExpr.init_aasnotnullexpr(
+                                               pexprnode2,
+                                               tkwasnode3,
+                                               tkwnotnode4,
+                                               tkwnullnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
@@ -20903,43 +12330,13 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tlenode7 = nodearraylist5
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist2
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
@@ -20948,43 +12345,14 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tgenode7 = nodearraylist5
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
@@ -20993,43 +12361,13 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tltnode7 = nodearraylist5
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
@@ -21038,43 +12376,11 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tgtnode7 = nodearraylist5
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
@@ -21083,47 +12389,11 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist9
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
@@ -21132,43 +12402,11 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tstarshipnode7 = nodearraylist5
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
@@ -21177,47 +12415,15 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist6
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist9
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
+                                       var tkwreturnnode2 = nodearraylist1
+                                       assert tkwreturnnode2 isa nullable TKwreturn
+                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
+                                               tkwreturnnode2,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
@@ -21226,18283 +12432,807 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist7
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist8
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var pexprnode11 = nodearraylist10
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode10,
-                                               pexprnode11
+                                       var tkwreturnnode2 = nodearraylist1
+                                       assert tkwreturnnode2 isa nullable TKwreturn
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
+                                               tkwreturnnode2,
+                                               pexprnode3
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction450
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwtypenode5 = nodearraylist3
-                                       assert tkwtypenode5 isa nullable TKwtype
-                                       var tclassidnode6 = nodearraylist4
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var ptypenode7 = nodearraylist5
-                                       assert ptypenode7 isa nullable AType
-                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction451
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwtypenode5 = nodearraylist4
-                                       assert tkwtypenode5 isa nullable TKwtype
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var ptypenode7 = nodearraylist6
-                                       assert ptypenode7 isa nullable AType
-                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction452
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var pvisibilitynode1: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
-                                       )
-                                       node_list = pvisibilitynode1
-                                       p.push(p.go_to(13), node_list)
-       end
-init do end
-end
-private class ReduceAction453
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwprivatenode2 = nodearraylist1
-                                       assert tkwprivatenode2 isa nullable TKwprivate
-                                       var pvisibilitynode1: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
-                                               tkwprivatenode2
-                                       )
-                                       node_list = pvisibilitynode1
-                                       p.push(p.go_to(13), node_list)
-       end
-init do end
-end
-private class ReduceAction454
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwprotectednode2 = nodearraylist1
-                                       assert tkwprotectednode2 isa nullable TKwprotected
-                                       var pvisibilitynode1: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
-                                               tkwprotectednode2
-                                       )
-                                       node_list = pvisibilitynode1
-                                       p.push(p.go_to(13), node_list)
-       end
-init do end
-end
-private class ReduceAction455
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwintrudenode2 = nodearraylist1
-                                       assert tkwintrudenode2 isa nullable TKwintrude
-                                       var pvisibilitynode1: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
-                                               tkwintrudenode2
-                                       )
-                                       node_list = pvisibilitynode1
-                                       p.push(p.go_to(13), node_list)
-       end
-init do end
-end
-private class ReduceAction456
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var ptypenode3 = nodearraylist1
-                                       assert ptypenode3 isa nullable AType
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
-                                               ptypenode3,
-                                               listnode5
-                                       )
-                                       node_list = psignaturenode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction457
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       var ptypenode4 = nodearraylist2
-                                       assert ptypenode4 isa nullable AType
-                                       var listnode5 = nodearraylist3
-                                       assert listnode5 isa Array[Object]
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode3,
-                                               ptypenode4,
-                                               listnode6
-                                       )
-                                       node_list = psignaturenode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction458
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var ptypenode3 = nodearraylist1
-                                       assert ptypenode3 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
-                                               ptypenode3,
-                                               listnode4
-                                       )
-                                       node_list = psignaturenode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction459
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       var ptypenode4 = nodearraylist2
-                                       assert ptypenode4 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode3,
-                                               ptypenode4,
-                                               listnode5
-                                       )
-                                       node_list = psignaturenode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction460
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode4 = nodearraylist1
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
-                                               null,
-                                               listnode5
-                                       )
-                                       node_list = psignaturenode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction461
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       var listnode5 = nodearraylist2
-                                       assert listnode5 isa Array[Object]
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode3,
-                                               null,
-                                               listnode6
-                                       )
-                                       node_list = psignaturenode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction462
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
-                                               null,
-                                               listnode4
-                                       )
-                                       node_list = psignaturenode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction463
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode3,
-                                               null,
-                                               listnode5
-                                       )
-                                       node_list = psignaturenode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction464
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var listnode2 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
-                                               null,
-                                               listnode4
-                                       )
-                                       node_list = psignaturenode1
-                                       p.push(p.go_to(15), node_list)
-       end
-init do end
-end
-private class ReduceAction465
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode3,
-                                               null,
-                                               listnode5
-                                       )
-                                       node_list = psignaturenode1
-                                       p.push(p.go_to(15), node_list)
-       end
-init do end
-end
-private class ReduceAction466
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var ptypenode3 = nodearraylist1
-                                       assert ptypenode3 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
-                                               ptypenode3,
-                                               listnode4
-                                       )
-                                       node_list = psignaturenode1
-                                       p.push(p.go_to(15), node_list)
-       end
-init do end
-end
-private class ReduceAction467
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       var ptypenode4 = nodearraylist2
-                                       assert ptypenode4 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode3,
-                                               ptypenode4,
-                                               listnode5
-                                       )
-                                       node_list = psignaturenode1
-                                       p.push(p.go_to(15), node_list)
-       end
-init do end
-end
-private class ReduceAction468
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pparamnode1 = nodearraylist3
-                                       assert pparamnode1 isa nullable AParam
-                                       if pparamnode1 != null then
-                                               listnode2.add(pparamnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(16), node_list)
-       end
-init do end
-end
-private class ReduceAction469
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pparamnode1 = nodearraylist3
-                                       assert pparamnode1 isa nullable AParam
-                                       var listnode2 = nodearraylist4
-                                       assert listnode2 isa Array[Object]
-                                       if pparamnode1 != null then
-                                               listnode3.add(pparamnode1)
-                                       end
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       node_list = listnode3
-                                       p.push(p.go_to(16), node_list)
-       end
-init do end
-end
-private class ReduceAction470
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode1 = new Array[Object]
-                                       node_list = listnode1
-                                       p.push(p.go_to(16), node_list)
-       end
-init do end
-end
-private class ReduceAction471
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pparamnode1 = nodearraylist3
-                                       assert pparamnode1 isa nullable AParam
-                                       node_list = pparamnode1
-                                       p.push(p.go_to(17), node_list)
-       end
-init do end
-end
-private class ReduceAction472
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               null,
-                                               null
-                                       )
-                                       node_list = pparamnode1
-                                       p.push(p.go_to(18), node_list)
-       end
-init do end
-end
-private class ReduceAction473
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var ptypenode3 = nodearraylist2
-                                       assert ptypenode3 isa nullable AType
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               ptypenode3,
-                                               null
-                                       )
-                                       node_list = pparamnode1
-                                       p.push(p.go_to(18), node_list)
-       end
-init do end
-end
-private class ReduceAction474
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var ptypenode3 = nodearraylist2
-                                       assert ptypenode3 isa nullable AType
-                                       var tdotdotdotnode4 = nodearraylist3
-                                       assert tdotdotdotnode4 isa nullable TDotdotdot
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               ptypenode3,
-                                               tdotdotdotnode4
-                                       )
-                                       node_list = pparamnode1
-                                       p.push(p.go_to(18), node_list)
-       end
-init do end
-end
-private class ReduceAction475
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var listnode1 = nodearraylist2
-                                       assert listnode1 isa Array[Object]
-#                                      if listnode1 != null then
-                                               if listnode2.is_empty then
-                                                       listnode2 = listnode1
-                                               else
-                                                       listnode2.append(listnode1)
-                                               end
-#                                      end
-                                       node_list = listnode2
-                                       p.push(p.go_to(19), node_list)
-       end
-init do end
-end
-private class ReduceAction476
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tbangnode3 = nodearraylist1
-                                       assert tbangnode3 isa nullable TBang
-                                       var tidnode4 = nodearraylist2
-                                       assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist3
-                                       assert psignaturenode5 isa nullable ASignature
-                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
-                                               null,
-                                               tbangnode3,
-                                               tidnode4,
-                                               psignaturenode5,
-                                               null
-                                       )
-                                       node_list = pclosuredeclnode1
-                                       p.push(p.go_to(20), node_list)
-       end
-init do end
-end
-private class ReduceAction477
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var tbangnode3 = nodearraylist2
-                                       assert tbangnode3 isa nullable TBang
-                                       var tidnode4 = nodearraylist3
-                                       assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist4
-                                       assert psignaturenode5 isa nullable ASignature
-                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
-                                               tkwbreaknode2,
-                                               tbangnode3,
-                                               tidnode4,
-                                               psignaturenode5,
-                                               null
-                                       )
-                                       node_list = pclosuredeclnode1
-                                       p.push(p.go_to(20), node_list)
-       end
-init do end
-end
-private class ReduceAction478
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tbangnode3 = nodearraylist1
-                                       assert tbangnode3 isa nullable TBang
-                                       var tidnode4 = nodearraylist2
-                                       assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist3
-                                       assert psignaturenode5 isa nullable ASignature
-                                       var pexprnode6 = nodearraylist5
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
-                                               null,
-                                               tbangnode3,
-                                               tidnode4,
-                                               psignaturenode5,
-                                               pexprnode6
-                                       )
-                                       node_list = pclosuredeclnode1
-                                       p.push(p.go_to(20), node_list)
-       end
-init do end
-end
-private class ReduceAction479
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var tbangnode3 = nodearraylist2
-                                       assert tbangnode3 isa nullable TBang
-                                       var tidnode4 = nodearraylist3
-                                       assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist4
-                                       assert psignaturenode5 isa nullable ASignature
-                                       var pexprnode6 = nodearraylist6
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
-                                               tkwbreaknode2,
-                                               tbangnode3,
-                                               tidnode4,
-                                               psignaturenode5,
-                                               pexprnode6
-                                       )
-                                       node_list = pclosuredeclnode1
-                                       p.push(p.go_to(20), node_list)
-       end
-init do end
-end
-private class ReduceAction480
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tbangnode3 = nodearraylist1
-                                       assert tbangnode3 isa nullable TBang
-                                       var tidnode4 = nodearraylist2
-                                       assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist3
-                                       assert psignaturenode5 isa nullable ASignature
-                                       var pexprnode6 = nodearraylist6
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
-                                               null,
-                                               tbangnode3,
-                                               tidnode4,
-                                               psignaturenode5,
-                                               pexprnode6
-                                       )
-                                       node_list = pclosuredeclnode1
-                                       p.push(p.go_to(20), node_list)
-       end
-init do end
-end
-private class ReduceAction481
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var tbangnode3 = nodearraylist2
-                                       assert tbangnode3 isa nullable TBang
-                                       var tidnode4 = nodearraylist3
-                                       assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist4
-                                       assert psignaturenode5 isa nullable ASignature
-                                       var pexprnode6 = nodearraylist7
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
-                                               tkwbreaknode2,
-                                               tbangnode3,
-                                               tidnode4,
-                                               psignaturenode5,
-                                               pexprnode6
-                                       )
-                                       node_list = pclosuredeclnode1
-                                       p.push(p.go_to(20), node_list)
-       end
-init do end
-end
-private class ReduceAction482
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode3 = nodearraylist1
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
-                                               null,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(21), node_list)
-       end
-init do end
-end
-private class ReduceAction483
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tclassidnode3 = nodearraylist1
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               null,
-                                               tclassidnode3,
-                                               listnode4
-                                       )
-                                       node_list = ptypenode1
-                                       p.push(p.go_to(22), node_list)
-       end
-init do end
-end
-private class ReduceAction484
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwnullablenode2 = nodearraylist1
-                                       assert tkwnullablenode2 isa nullable TKwnullable
-                                       var tclassidnode3 = nodearraylist2
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               tkwnullablenode2,
-                                               tclassidnode3,
-                                               listnode4
-                                       )
-                                       node_list = ptypenode1
-                                       p.push(p.go_to(22), node_list)
-       end
-init do end
-end
-private class ReduceAction485
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tclassidnode3 = nodearraylist1
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var listnode4 = nodearraylist4
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               null,
-                                               tclassidnode3,
-                                               listnode5
-                                       )
-                                       node_list = ptypenode1
-                                       p.push(p.go_to(22), node_list)
-       end
-init do end
-end
-private class ReduceAction486
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tkwnullablenode2 = nodearraylist1
-                                       assert tkwnullablenode2 isa nullable TKwnullable
-                                       var tclassidnode3 = nodearraylist2
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               tkwnullablenode2,
-                                               tclassidnode3,
-                                               listnode5
-                                       )
-                                       node_list = ptypenode1
-                                       p.push(p.go_to(22), node_list)
-       end
-init do end
-end
-private class ReduceAction487
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var ptypenode1 = nodearraylist1
-                                       assert ptypenode1 isa nullable AType
-                                       if ptypenode1 != null then
-                                               listnode2.add(ptypenode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(23), node_list)
-       end
-init do end
-end
-private class ReduceAction488
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var ptypenode1 = nodearraylist1
-                                       assert ptypenode1 isa nullable AType
-                                       var listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       if ptypenode1 != null then
-                                               listnode3.add(ptypenode1)
-                                       end
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       node_list = listnode3
-                                       p.push(p.go_to(23), node_list)
-       end
-init do end
-end
-private class ReduceAction489
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var ptypenode1 = nodearraylist3
-                                       assert ptypenode1 isa nullable AType
-                                       node_list = ptypenode1
-                                       p.push(p.go_to(24), node_list)
-       end
-init do end
-end
-private class ReduceAction490
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var ptypenode1 = nodearraylist3
-                                       assert ptypenode1 isa nullable AType
-                                       node_list = ptypenode1
-                                       p.push(p.go_to(25), node_list)
-       end
-init do end
-end
-private class ReduceAction491
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pexprnode2 = nodearraylist2
-                                       assert pexprnode2 isa nullable AExpr
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(26), node_list)
-       end
-init do end
-end
-private class ReduceAction492
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode2 = nodearraylist2
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       if pexprnode2 != null then
-                                               listnode4.add(pexprnode2)
-                                       end
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(26), node_list)
-       end
-init do end
-end
-private class ReduceAction493
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(26), node_list)
-       end
-init do end
-end
-private class ReduceAction494
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(26), node_list)
-       end
-init do end
-end
-private class ReduceAction495
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(26), node_list)
-       end
-init do end
-end
-private class ReduceAction496
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist2
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(27), node_list)
-       end
-init do end
-end
-private class ReduceAction497
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction498
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction499
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwreturnnode2 = nodearraylist1
-                                       assert tkwreturnnode2 isa nullable TKwreturn
-                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
-                                               tkwreturnnode2,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction500
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwreturnnode2 = nodearraylist1
-                                       assert tkwreturnnode2 isa nullable TKwreturn
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
-                                               tkwreturnnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction501
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
-                                               null,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction502
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var plabelnode3 = nodearraylist2
-                                       assert plabelnode3 isa nullable ALabel
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
-                                               plabelnode3,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction503
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var pexprnode4 = nodearraylist2
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
-                                               null,
-                                               pexprnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction504
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var plabelnode3 = nodearraylist2
-                                       assert plabelnode3 isa nullable ALabel
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
-                                               plabelnode3,
-                                               pexprnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction505
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwabortnode2 = nodearraylist1
-                                       assert tkwabortnode2 isa nullable TKwabort
-                                       var pexprnode1: nullable AAbortExpr = new AAbortExpr.init_aabortexpr(
-                                               tkwabortnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction506
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwcontinuenode2 = nodearraylist1
-                                       assert tkwcontinuenode2 isa nullable TKwcontinue
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
-                                               null,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction507
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwcontinuenode2 = nodearraylist1
-                                       assert tkwcontinuenode2 isa nullable TKwcontinue
-                                       var plabelnode3 = nodearraylist2
-                                       assert plabelnode3 isa nullable ALabel
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
-                                               plabelnode3,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction508
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwcontinuenode2 = nodearraylist1
-                                       assert tkwcontinuenode2 isa nullable TKwcontinue
-                                       var pexprnode4 = nodearraylist2
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
-                                               null,
-                                               pexprnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction509
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwcontinuenode2 = nodearraylist1
-                                       assert tkwcontinuenode2 isa nullable TKwcontinue
-                                       var plabelnode3 = nodearraylist2
-                                       assert plabelnode3 isa nullable ALabel
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
-                                               plabelnode3,
-                                               pexprnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction510
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction511
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction512
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction513
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction514
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction515
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction516
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction517
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction518
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var listnode6 = nodearraylist6
-                                       assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction519
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction520
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tkwsupernode3 = nodearraylist1
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               null,
-                                               tkwsupernode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction521
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pqualifiednode2 = nodearraylist1
-                                       assert pqualifiednode2 isa nullable AQualified
-                                       var tkwsupernode3 = nodearraylist2
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               pqualifiednode2,
-                                               tkwsupernode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction522
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tkwinitnode3 = nodearraylist4
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction523
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tkwinitnode3 = nodearraylist1
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
-       end
-init do end
-end
-private class ReduceAction524
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwlabelnode2 = nodearraylist1
-                                       assert tkwlabelnode2 isa nullable TKwlabel
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var plabelnode1: nullable ALabel = new ALabel.init_alabel(
-                                               tkwlabelnode2,
-                                               tidnode3
-                                       )
-                                       node_list = plabelnode1
-                                       p.push(p.go_to(29), node_list)
-       end
-init do end
-end
-private class ReduceAction525
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pclosuredefnode1 = nodearraylist1
-                                       assert pclosuredefnode1 isa nullable AClosureDef
-                                       if pclosuredefnode1 != null then
-                                               listnode2.add(pclosuredefnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(30), node_list)
-       end
-init do end
-end
-private class ReduceAction526
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pclosuredefnode1 = nodearraylist1
-                                       assert pclosuredefnode1 isa nullable AClosureDef
-                                       var listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       if pclosuredefnode1 != null then
-                                               listnode3.add(pclosuredefnode1)
-                                       end
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       node_list = listnode3
-                                       p.push(p.go_to(30), node_list)
-       end
-init do end
-end
-private class ReduceAction527
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable AExpr
-                                       if pexprnode7 != null then
-                                               listnode8.add(pexprnode7)
-                                       end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(31), node_list)
-       end
-init do end
-end
-private class ReduceAction528
-special 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 listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode9 = new Array[Object]
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable AExpr
-                                       var listnode8 = nodearraylist6
-                                       assert listnode8 isa Array[Object]
-                                       if pexprnode7 != null then
-                                               listnode9.add(pexprnode7)
-                                       end
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-#                                      end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode9
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(31), node_list)
-       end
-init do end
-end
-private class ReduceAction529
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(31), node_list)
-       end
-init do end
-end
-private class ReduceAction530
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(31), node_list)
-       end
-init do end
-end
-private class ReduceAction531
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var listnode9 = new Array[Object]
-                                       var pexprnode8 = nodearraylist6
-                                       assert pexprnode8 isa nullable AExpr
-                                       if pexprnode8 != null then
-                                               listnode9.add(pexprnode8)
-                                       end
-                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode9
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(31), node_list)
-       end
-init do end
-end
-private class ReduceAction532
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var listnode10 = new Array[Object]
-                                       var pexprnode8 = nodearraylist6
-                                       assert pexprnode8 isa nullable AExpr
-                                       var listnode9 = nodearraylist7
-                                       assert listnode9 isa Array[Object]
-                                       if pexprnode8 != null then
-                                               listnode10.add(pexprnode8)
-                                       end
-#                                      if listnode9 != null then
-                                               if listnode10.is_empty then
-                                                       listnode10 = listnode9
-                                               else
-                                                       listnode10.append(listnode9)
-                                               end
-#                                      end
-                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode10
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(31), node_list)
-       end
-init do end
-end
-private class ReduceAction533
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(31), node_list)
-       end
-init do end
-end
-private class ReduceAction534
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(31), node_list)
-       end
-init do end
-end
-private class ReduceAction535
-special 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 listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable AExpr
-                                       if pexprnode7 != null then
-                                               listnode8.add(pexprnode7)
-                                       end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var plabelnode9 = nodearraylist8
-                                       assert plabelnode9 isa nullable ALabel
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode9
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(31), node_list)
-       end
-init do end
-end
-private class ReduceAction536
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode9 = new Array[Object]
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable AExpr
-                                       var listnode8 = nodearraylist6
-                                       assert listnode8 isa Array[Object]
-                                       if pexprnode7 != null then
-                                               listnode9.add(pexprnode7)
-                                       end
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-#                                      end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode9
-                                       )
-                                       var plabelnode10 = nodearraylist9
-                                       assert plabelnode10 isa nullable ALabel
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode10
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(31), node_list)
-       end
-init do end
-end
-private class ReduceAction537
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
-                                       )
-                                       var plabelnode8 = nodearraylist6
-                                       assert plabelnode8 isa nullable ALabel
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode8
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(31), node_list)
-       end
-init do end
-end
-private class ReduceAction538
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
-                                       )
-                                       var plabelnode8 = nodearraylist5
-                                       assert plabelnode8 isa nullable ALabel
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode8
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(31), node_list)
-       end
-init do end
-end
-private class ReduceAction539
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var listnode9 = new Array[Object]
-                                       var pexprnode8 = nodearraylist6
-                                       assert pexprnode8 isa nullable AExpr
-                                       if pexprnode8 != null then
-                                               listnode9.add(pexprnode8)
-                                       end
-                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode9
-                                       )
-                                       var plabelnode10 = nodearraylist9
-                                       assert plabelnode10 isa nullable ALabel
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               plabelnode10
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(31), node_list)
-       end
-init do end
-end
-private class ReduceAction540
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var listnode10 = new Array[Object]
-                                       var pexprnode8 = nodearraylist6
-                                       assert pexprnode8 isa nullable AExpr
-                                       var listnode9 = nodearraylist7
-                                       assert listnode9 isa Array[Object]
-                                       if pexprnode8 != null then
-                                               listnode10.add(pexprnode8)
-                                       end
-#                                      if listnode9 != null then
-                                               if listnode10.is_empty then
-                                                       listnode10 = listnode9
-                                               else
-                                                       listnode10.append(listnode9)
-                                               end
-#                                      end
-                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode10
-                                       )
-                                       var plabelnode11 = nodearraylist10
-                                       assert plabelnode11 isa nullable ALabel
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               plabelnode11
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(31), node_list)
-       end
-init do end
-end
-private class ReduceAction541
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var plabelnode9 = nodearraylist7
-                                       assert plabelnode9 isa nullable ALabel
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               plabelnode9
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(31), node_list)
-       end
-init do end
-end
-private class ReduceAction542
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var plabelnode9 = nodearraylist6
-                                       assert plabelnode9 isa nullable ALabel
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               plabelnode9
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(31), node_list)
-       end
-init do end
-end
-private class ReduceAction543
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(31), node_list)
-       end
-init do end
-end
-private class ReduceAction544
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(31), node_list)
-       end
-init do end
-end
-private class ReduceAction545
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var pexprnode6 = nodearraylist5
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               null,
-                                               pexprnode6,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(31), node_list)
-       end
-init do end
-end
-private class ReduceAction546
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode7 = nodearraylist6
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               null,
-                                               pexprnode7,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(31), node_list)
-       end
-init do end
-end
-private class ReduceAction547
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable AExpr
-                                       if pexprnode7 != null then
-                                               listnode8.add(pexprnode7)
-                                       end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(32), node_list)
-       end
-init do end
-end
-private class ReduceAction548
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode9 = new Array[Object]
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable AExpr
-                                       var listnode8 = nodearraylist6
-                                       assert listnode8 isa Array[Object]
-                                       if pexprnode7 != null then
-                                               listnode9.add(pexprnode7)
-                                       end
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-#                                      end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode9
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(32), node_list)
-       end
-init do end
-end
-private class ReduceAction549
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var listnode9 = new Array[Object]
-                                       var pexprnode8 = nodearraylist6
-                                       assert pexprnode8 isa nullable AExpr
-                                       if pexprnode8 != null then
-                                               listnode9.add(pexprnode8)
-                                       end
-                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode9
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(32), node_list)
-       end
-init do end
-end
-private class ReduceAction550
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var listnode10 = new Array[Object]
-                                       var pexprnode8 = nodearraylist6
-                                       assert pexprnode8 isa nullable AExpr
-                                       var listnode9 = nodearraylist7
-                                       assert listnode9 isa Array[Object]
-                                       if pexprnode8 != null then
-                                               listnode10.add(pexprnode8)
-                                       end
-#                                      if listnode9 != null then
-                                               if listnode10.is_empty then
-                                                       listnode10 = listnode9
-                                               else
-                                                       listnode10.append(listnode9)
-                                               end
-#                                      end
-                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode10
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(32), node_list)
-       end
-init do end
-end
-private class ReduceAction551
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               null,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(32), node_list)
-       end
-init do end
-end
-private class ReduceAction552
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               null,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(32), node_list)
-       end
-init do end
-end
-private class ReduceAction553
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var pclosureidnode1: nullable ASimpleClosureId = new ASimpleClosureId.init_asimpleclosureid(
-                                               tidnode2
-                                       )
-                                       node_list = pclosureidnode1
-                                       p.push(p.go_to(33), node_list)
-       end
-init do end
-end
-private class ReduceAction554
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var pclosureidnode1: nullable ABreakClosureId = new ABreakClosureId.init_abreakclosureid(
-                                               tkwbreaknode2
-                                       )
-                                       node_list = pclosureidnode1
-                                       p.push(p.go_to(33), node_list)
-       end
-init do end
-end
-private class ReduceAction555
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode4 = nodearraylist1
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               null,
-                                               null,
-                                               pexprnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(34), node_list)
-       end
-init do end
-end
-private class ReduceAction556
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(35), node_list)
-       end
-init do end
-end
-private class ReduceAction557
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var ptypenode4 = nodearraylist3
-                                       assert ptypenode4 isa nullable AType
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               ptypenode4,
-                                               null,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(35), node_list)
-       end
-init do end
-end
-private class ReduceAction558
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var tassignnode5 = nodearraylist3
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist5
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               null,
-                                               tassignnode5,
-                                               pexprnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(35), node_list)
-       end
-init do end
-end
-private class ReduceAction559
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var ptypenode4 = nodearraylist3
-                                       assert ptypenode4 isa nullable AType
-                                       var tassignnode5 = nodearraylist4
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist6
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               ptypenode4,
-                                               tassignnode5,
-                                               pexprnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(35), node_list)
-       end
-init do end
-end
-private class ReduceAction560
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist4
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist5
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
-       end
-init do end
-end
-private class ReduceAction561
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tattridnode3 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist2
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist3
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
-       end
-init do end
-end
-private class ReduceAction562
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tassignnode6 = nodearraylist6
-                                       assert tassignnode6 isa nullable TAssign
-                                       var pexprnode7 = nodearraylist7
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               tassignnode6,
-                                               pexprnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
-       end
-init do end
-end
-private class ReduceAction563
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tassignnode6 = nodearraylist3
-                                       assert tassignnode6 isa nullable TAssign
-                                       var pexprnode7 = nodearraylist4
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               tassignnode6,
-                                               pexprnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
-       end
-init do end
-end
-private class ReduceAction564
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var tassignnode5 = nodearraylist3
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable ABraAssignExpr = new ABraAssignExpr.init_abraassignexpr(
-                                               pexprnode2,
-                                               listnode4,
-                                               tassignnode5,
-                                               pexprnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
-       end
-init do end
-end
-private class ReduceAction565
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist4
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist5
-                                       assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
-       end
-init do end
-end
-private class ReduceAction566
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tattridnode3 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist2
-                                       assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist3
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
-       end
-init do end
-end
-private class ReduceAction567
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var passignopnode6 = nodearraylist6
-                                       assert passignopnode6 isa nullable AAssignOp
-                                       var pexprnode7 = nodearraylist7
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               passignopnode6,
-                                               pexprnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
-       end
-init do end
-end
-private class ReduceAction568
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var passignopnode6 = nodearraylist3
-                                       assert passignopnode6 isa nullable AAssignOp
-                                       var pexprnode7 = nodearraylist4
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               passignopnode6,
-                                               pexprnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
-       end
-init do end
-end
-private class ReduceAction569
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var passignopnode5 = nodearraylist3
-                                       assert passignopnode5 isa nullable AAssignOp
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable ABraReassignExpr = new ABraReassignExpr.init_abrareassignexpr(
-                                               pexprnode2,
-                                               listnode4,
-                                               passignopnode5,
-                                               pexprnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
-       end
-init do end
-end
-private class ReduceAction570
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tpluseqnode2 = nodearraylist1
-                                       assert tpluseqnode2 isa nullable TPluseq
-                                       var passignopnode1: nullable APlusAssignOp = new APlusAssignOp.init_aplusassignop(
-                                               tpluseqnode2
-                                       )
-                                       node_list = passignopnode1
-                                       p.push(p.go_to(37), node_list)
-       end
-init do end
-end
-private class ReduceAction571
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tminuseqnode2 = nodearraylist1
-                                       assert tminuseqnode2 isa nullable TMinuseq
-                                       var passignopnode1: nullable AMinusAssignOp = new AMinusAssignOp.init_aminusassignop(
-                                               tminuseqnode2
-                                       )
-                                       node_list = passignopnode1
-                                       p.push(p.go_to(37), node_list)
-       end
-init do end
-end
-private class ReduceAction572
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       if pexprnode4 != null then
-                                               listnode5.add(pexprnode4)
-                                       end
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode5
-                                       )
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(38), node_list)
-       end
-init do end
-end
-private class ReduceAction573
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var listnode5 = nodearraylist4
-                                       assert listnode5 isa Array[Object]
-                                       if pexprnode4 != null then
-                                               listnode6.add(pexprnode4)
-                                       end
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
-                                       )
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(38), node_list)
-       end
-init do end
-end
-private class ReduceAction574
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
-                                       )
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(38), node_list)
-       end
-init do end
-end
-private class ReduceAction575
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
-                                       )
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(38), node_list)
-       end
-init do end
-end
-private class ReduceAction576
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       if pexprnode4 != null then
-                                               listnode5.add(pexprnode4)
-                                       end
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode5
-                                       )
-                                       var plabelnode6 = nodearraylist6
-                                       assert plabelnode6 isa nullable ALabel
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               plabelnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(38), node_list)
-       end
-init do end
-end
-private class ReduceAction577
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var listnode5 = nodearraylist4
-                                       assert listnode5 isa Array[Object]
-                                       if pexprnode4 != null then
-                                               listnode6.add(pexprnode4)
-                                       end
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
-                                       )
-                                       var plabelnode7 = nodearraylist7
-                                       assert plabelnode7 isa nullable ALabel
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               plabelnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(38), node_list)
-       end
-init do end
-end
-private class ReduceAction578
-special 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 tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
-                                       )
-                                       var plabelnode5 = nodearraylist4
-                                       assert plabelnode5 isa nullable ALabel
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               plabelnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(38), node_list)
-       end
-init do end
-end
-private class ReduceAction579
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
-                                       )
-                                       var plabelnode5 = nodearraylist3
-                                       assert plabelnode5 isa nullable ALabel
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               plabelnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(38), node_list)
-       end
-init do end
-end
-private class ReduceAction580
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(38), node_list)
-       end
-init do end
-end
-private class ReduceAction581
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode4 = nodearraylist6
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode5 = nodearraylist8
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               pexprnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(39), node_list)
-       end
-init do end
-end
-private class ReduceAction582
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode4 = nodearraylist6
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(39), node_list)
-       end
-init do end
-end
-private class ReduceAction583
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable AExpr
-                                       if pexprnode5 != null then
-                                               listnode6.add(pexprnode5)
-                                       end
-                                       var pexprnode4: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
-                                       )
-                                       var pexprnode7 = nodearraylist9
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               pexprnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(39), node_list)
-       end
-init do end
-end
-private class ReduceAction584
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable AExpr
-                                       var listnode6 = nodearraylist8
-                                       assert listnode6 isa Array[Object]
-                                       if pexprnode5 != null then
-                                               listnode7.add(pexprnode5)
-                                       end
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
-                                       var pexprnode4: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
-                                       )
-                                       var pexprnode8 = nodearraylist10
-                                       assert pexprnode8 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               pexprnode8
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(39), node_list)
-       end
-init do end
-end
-private class ReduceAction585
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               null,
-                                               pexprnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(39), node_list)
-       end
-init do end
-end
-private class ReduceAction586
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               null,
-                                               pexprnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(39), node_list)
-       end
-init do end
-end
-private class ReduceAction587
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist2
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(40), node_list)
-       end
-init do end
-end
-private class ReduceAction588
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       node_list = null
-                                       p.push(p.go_to(40), node_list)
-       end
-init do end
-end
-private class ReduceAction589
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       if pexprnode4 != null then
-                                               listnode5.add(pexprnode4)
-                                       end
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode5
-                                       )
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
-       end
-init do end
-end
-private class ReduceAction590
-special 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 tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var listnode5 = nodearraylist4
-                                       assert listnode5 isa Array[Object]
-                                       if pexprnode4 != null then
-                                               listnode6.add(pexprnode4)
-                                       end
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
-                                       )
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
-       end
-init do end
-end
-private class ReduceAction591
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
-                                       )
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
-       end
-init do end
-end
-private class ReduceAction592
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
-                                       )
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
-       end
-init do end
-end
-private class ReduceAction593
-special 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 tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       if pexprnode4 != null then
-                                               listnode5.add(pexprnode4)
-                                       end
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode5
-                                       )
-                                       var plabelnode6 = nodearraylist6
-                                       assert plabelnode6 isa nullable ALabel
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               plabelnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
-       end
-init do end
-end
-private class ReduceAction594
-special 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 tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var listnode5 = nodearraylist4
-                                       assert listnode5 isa Array[Object]
-                                       if pexprnode4 != null then
-                                               listnode6.add(pexprnode4)
-                                       end
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
-                                       )
-                                       var plabelnode7 = nodearraylist7
-                                       assert plabelnode7 isa nullable ALabel
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               plabelnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
-       end
-init do end
-end
-private class ReduceAction595
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
-                                       )
-                                       var plabelnode5 = nodearraylist4
-                                       assert plabelnode5 isa nullable ALabel
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               plabelnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
-       end
-init do end
-end
-private class ReduceAction596
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
-                                       )
-                                       var plabelnode5 = nodearraylist3
-                                       assert plabelnode5 isa nullable ALabel
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               plabelnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
-       end
-init do end
-end
-private class ReduceAction597
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
-       end
-init do end
-end
-private class ReduceAction598
-special 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 tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6 = nodearraylist7
-                                       assert pexprnode6 isa nullable AExpr
-                                       if pexprnode6 != null then
-                                               listnode7.add(pexprnode6)
-                                       end
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
-                                       )
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(42), node_list)
-       end
-init do end
-end
-private class ReduceAction599
-special 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 tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode6 = nodearraylist7
-                                       assert pexprnode6 isa nullable AExpr
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       if pexprnode6 != null then
-                                               listnode8.add(pexprnode6)
-                                       end
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(42), node_list)
-       end
-init do end
-end
-private class ReduceAction600
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
-                                       )
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(42), node_list)
-       end
-init do end
-end
-private class ReduceAction601
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
-                                       )
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(42), node_list)
-       end
-init do end
-end
-private class ReduceAction602
-special 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 tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6 = nodearraylist7
-                                       assert pexprnode6 isa nullable AExpr
-                                       if pexprnode6 != null then
-                                               listnode7.add(pexprnode6)
-                                       end
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
-                                       )
-                                       var plabelnode8 = nodearraylist10
-                                       assert plabelnode8 isa nullable ALabel
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode8
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(42), node_list)
-       end
-init do end
-end
-private class ReduceAction603
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode6 = nodearraylist7
-                                       assert pexprnode6 isa nullable AExpr
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       if pexprnode6 != null then
-                                               listnode8.add(pexprnode6)
-                                       end
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var plabelnode9 = nodearraylist11
-                                       assert plabelnode9 isa nullable ALabel
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode9
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(42), node_list)
-       end
-init do end
-end
-private class ReduceAction604
-special 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 tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
-                                       )
-                                       var plabelnode7 = nodearraylist8
-                                       assert plabelnode7 isa nullable ALabel
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(42), node_list)
-       end
-init do end
-end
-private class ReduceAction605
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
-                                       )
-                                       var plabelnode7 = nodearraylist7
-                                       assert plabelnode7 isa nullable ALabel
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(42), node_list)
-       end
-init do end
-end
-private class ReduceAction606
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(42), node_list)
-       end
-init do end
-end
-private class ReduceAction607
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var tidnode3 = nodearraylist3
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tkwdonode5 = nodearraylist9
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7 = nodearraylist11
-                                       assert pexprnode7 isa nullable AExpr
-                                       if pexprnode7 != null then
-                                               listnode8.add(pexprnode7)
-                                       end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
-       end
-init do end
-end
-private class ReduceAction608
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist14 = p.pop
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var tidnode3 = nodearraylist3
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tkwdonode5 = nodearraylist9
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode9 = new Array[Object]
-                                       var pexprnode7 = nodearraylist11
-                                       assert pexprnode7 isa nullable AExpr
-                                       var listnode8 = nodearraylist12
-                                       assert listnode8 isa Array[Object]
-                                       if pexprnode7 != null then
-                                               listnode9.add(pexprnode7)
-                                       end
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-#                                      end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode9
-                                       )
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
-       end
-init do end
-end
-private class ReduceAction609
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var tidnode3 = nodearraylist3
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tkwdonode5 = nodearraylist9
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
-                                       )
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
-       end
-init do end
-end
-private class ReduceAction610
-special 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 tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var tidnode3 = nodearraylist3
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tkwdonode5 = nodearraylist9
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
-                                       )
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
-       end
-init do end
-end
-private class ReduceAction611
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist14 = p.pop
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var tidnode3 = nodearraylist3
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tkwdonode5 = nodearraylist9
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7 = nodearraylist11
-                                       assert pexprnode7 isa nullable AExpr
-                                       if pexprnode7 != null then
-                                               listnode8.add(pexprnode7)
-                                       end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var plabelnode9 = nodearraylist14
-                                       assert plabelnode9 isa nullable ALabel
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode9
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
-       end
-init do end
-end
-private class ReduceAction612
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist15 = p.pop
-                                       var nodearraylist14 = p.pop
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var tidnode3 = nodearraylist3
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tkwdonode5 = nodearraylist9
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode9 = new Array[Object]
-                                       var pexprnode7 = nodearraylist11
-                                       assert pexprnode7 isa nullable AExpr
-                                       var listnode8 = nodearraylist12
-                                       assert listnode8 isa Array[Object]
-                                       if pexprnode7 != null then
-                                               listnode9.add(pexprnode7)
-                                       end
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-#                                      end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode9
-                                       )
-                                       var plabelnode10 = nodearraylist15
-                                       assert plabelnode10 isa nullable ALabel
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode10
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
-       end
-init do end
-end
-private class ReduceAction613
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var tidnode3 = nodearraylist3
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tkwdonode5 = nodearraylist9
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
-                                       )
-                                       var plabelnode8 = nodearraylist12
-                                       assert plabelnode8 isa nullable ALabel
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode8
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
-       end
-init do end
-end
-private class ReduceAction614
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var tidnode3 = nodearraylist3
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tkwdonode5 = nodearraylist9
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
-                                       )
-                                       var plabelnode8 = nodearraylist11
-                                       assert plabelnode8 isa nullable ALabel
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode8
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
-       end
-init do end
-end
-private class ReduceAction615
-special 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 tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var tidnode3 = nodearraylist3
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tkwdonode5 = nodearraylist9
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var pexprnode6 = nodearraylist10
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
-       end
-init do end
-end
-private class ReduceAction616
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwassertnode2 = nodearraylist1
-                                       assert tkwassertnode2 isa nullable TKwassert
-                                       var pexprnode4 = nodearraylist2
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode5 = nodearraylist4
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
-                                               null,
-                                               pexprnode4,
-                                               pexprnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(44), node_list)
-       end
-init do end
-end
-private class ReduceAction617
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwassertnode2 = nodearraylist1
-                                       assert tkwassertnode2 isa nullable TKwassert
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode5 = nodearraylist5
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               pexprnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(44), node_list)
-       end
-init do end
-end
-private class ReduceAction618
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwassertnode2 = nodearraylist1
-                                       assert tkwassertnode2 isa nullable TKwassert
-                                       var pexprnode4 = nodearraylist2
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
-                                               null,
-                                               pexprnode4,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(44), node_list)
-       end
-init do end
-end
-private class ReduceAction619
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwassertnode2 = nodearraylist1
-                                       assert tkwassertnode2 isa nullable TKwassert
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(44), node_list)
-       end
-init do end
-end
-private class ReduceAction620
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tidnode1 = nodearraylist1
-                                       assert tidnode1 isa nullable TId
-                                       node_list = tidnode1
-                                       p.push(p.go_to(45), node_list)
-       end
-init do end
-end
-private class ReduceAction621
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
-       end
-init do end
-end
-private class ReduceAction622
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var listnode6 = nodearraylist6
-                                       assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
-       end
-init do end
-end
-private class ReduceAction623
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
-       end
-init do end
-end
-private class ReduceAction624
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var listnode5 = nodearraylist3
-                                       assert listnode5 isa Array[Object]
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
-                                               pexprnode2,
-                                               listnode4,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
-       end
-init do end
-end
-private class ReduceAction625
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
-       end
-init do end
-end
-private class ReduceAction626
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwthennode4 = nodearraylist5
-                                       assert tkwthennode4 isa nullable TKwthen
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable AExpr
-                                       var tkwelsenode6 = nodearraylist9
-                                       assert tkwelsenode6 isa nullable TKwelse
-                                       var pexprnode7 = nodearraylist11
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable AIfexprExpr = new AIfexprExpr.init_aifexprexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               tkwthennode4,
-                                               pexprnode5,
-                                               tkwelsenode6,
-                                               pexprnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
-       end
-init do end
-end
-private class ReduceAction627
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(48), node_list)
-       end
-init do end
-end
-private class ReduceAction628
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(48), node_list)
-       end
-init do end
-end
-private class ReduceAction629
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(48), node_list)
-       end
-init do end
-end
-private class ReduceAction630
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
-       end
-init do end
-end
-private class ReduceAction631
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwnotnode2 = nodearraylist1
-                                       assert tkwnotnode2 isa nullable TKwnot
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ANotExpr = new ANotExpr.init_anotexpr(
-                                               tkwnotnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
-       end
-init do end
-end
-private class ReduceAction632
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
-       end
-init do end
-end
-private class ReduceAction633
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
-       end
-init do end
-end
-private class ReduceAction634
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AEeExpr = new AEeExpr.init_aeeexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
-       end
-init do end
-end
-private class ReduceAction635
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
-       end
-init do end
-end
-private class ReduceAction636
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
-       end
-init do end
-end
-private class ReduceAction637
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
-       end
-init do end
-end
-private class ReduceAction638
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
-       end
-init do end
-end
-private class ReduceAction639
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
-       end
-init do end
-end
-private class ReduceAction640
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
-       end
-init do end
-end
-private class ReduceAction641
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var ptypenode3 = nodearraylist4
-                                       assert ptypenode3 isa nullable AType
-                                       var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
-                                               pexprnode2,
-                                               ptypenode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
-       end
-init do end
-end
-private class ReduceAction642
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
-       end
-init do end
-end
-private class ReduceAction643
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
-       end
-init do end
-end
-private class ReduceAction644
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
-       end
-init do end
-end
-private class ReduceAction645
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
-       end
-init do end
-end
-private class ReduceAction646
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
-       end
-init do end
-end
-private class ReduceAction647
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
-       end
-init do end
-end
-private class ReduceAction648
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
-       end
-init do end
-end
-private class ReduceAction649
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(53), node_list)
-       end
-init do end
-end
-private class ReduceAction650
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tminusnode2 = nodearraylist1
-                                       assert tminusnode2 isa nullable TMinus
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
-                                               tminusnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(53), node_list)
-       end
-init do end
-end
-private class ReduceAction651
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwoncenode2 = nodearraylist1
-                                       assert tkwoncenode2 isa nullable TKwonce
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
-                                               tkwoncenode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(53), node_list)
-       end
-init do end
-end
-private class ReduceAction652
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
-       end
-init do end
-end
-private class ReduceAction653
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode6 = new Array[Object]
-                                       var tkwnewnode2 = nodearraylist1
-                                       assert tkwnewnode2 isa nullable TKwnew
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable AType
-                                       var listnode5 = nodearraylist4
-                                       assert listnode5 isa Array[Object]
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               null,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
-       end
-init do end
-end
-private class ReduceAction654
-special 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 tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tattridnode4 = nodearraylist5
-                                       assert tattridnode4 isa nullable TAttrid
-                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
-                                               tkwissetnode2,
-                                               pexprnode3,
-                                               tattridnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
-       end
-init do end
-end
-private class ReduceAction655
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tattridnode4 = nodearraylist2
-                                       assert tattridnode4 isa nullable TAttrid
-                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
-                                               tkwissetnode2,
-                                               pexprnode3,
-                                               tattridnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
-       end
-init do end
-end
-private class ReduceAction656
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist4
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
-                                               pexprnode2,
-                                               tattridnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction657
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tattridnode3 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
-                                               pexprnode2,
-                                               tattridnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction658
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction659
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction660
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tkwsupernode3 = nodearraylist1
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               null,
-                                               tkwsupernode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction661
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pqualifiednode2 = nodearraylist1
-                                       assert pqualifiednode2 isa nullable AQualified
-                                       var tkwsupernode3 = nodearraylist2
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               pqualifiednode2,
-                                               tkwsupernode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction662
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tkwinitnode3 = nodearraylist4
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction663
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tkwinitnode3 = nodearraylist1
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction664
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
-                                               pexprnode2,
-                                               listnode4,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction665
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode6 = new Array[Object]
-                                       var tkwnewnode2 = nodearraylist1
-                                       assert tkwnewnode2 isa nullable TKwnew
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable AType
-                                       var tidnode4 = nodearraylist6
-                                       assert tidnode4 isa nullable TId
-                                       var listnode5 = nodearraylist7
-                                       assert listnode5 isa Array[Object]
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               tidnode4,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction666
-special 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 = nodearraylist3
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist7
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ACrangeExpr = new ACrangeExpr.init_acrangeexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction667
-special 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 = nodearraylist3
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist7
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AOrangeExpr = new AOrangeExpr.init_aorangeexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction668
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable AArrayExpr = new AArrayExpr.init_aarrayexpr(
-                                               listnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction669
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwselfnode2 = nodearraylist1
-                                       assert tkwselfnode2 isa nullable TKwself
-                                       var pexprnode1: nullable ASelfExpr = new ASelfExpr.init_aselfexpr(
-                                               tkwselfnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction670
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwtruenode2 = nodearraylist1
-                                       assert tkwtruenode2 isa nullable TKwtrue
-                                       var pexprnode1: nullable ATrueExpr = new ATrueExpr.init_atrueexpr(
-                                               tkwtruenode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction671
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwfalsenode2 = nodearraylist1
-                                       assert tkwfalsenode2 isa nullable TKwfalse
-                                       var pexprnode1: nullable AFalseExpr = new AFalseExpr.init_afalseexpr(
-                                               tkwfalsenode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction672
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwnullnode2 = nodearraylist1
-                                       assert tkwnullnode2 isa nullable TKwnull
-                                       var pexprnode1: nullable ANullExpr = new ANullExpr.init_anullexpr(
-                                               tkwnullnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction673
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tnumbernode2 = nodearraylist1
-                                       assert tnumbernode2 isa nullable TNumber
-                                       var pexprnode1: nullable AIntExpr = new AIntExpr.init_aintexpr(
-                                               tnumbernode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction674
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tfloatnode2 = nodearraylist1
-                                       assert tfloatnode2 isa nullable TFloat
-                                       var pexprnode1: nullable AFloatExpr = new AFloatExpr.init_afloatexpr(
-                                               tfloatnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction675
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tcharnode2 = nodearraylist1
-                                       assert tcharnode2 isa nullable TChar
-                                       var pexprnode1: nullable ACharExpr = new ACharExpr.init_acharexpr(
-                                               tcharnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction676
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tstringnode2 = nodearraylist1
-                                       assert tstringnode2 isa nullable TString
-                                       var pexprnode1: nullable AStringExpr = new AStringExpr.init_astringexpr(
-                                               tstringnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction677
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction678
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist2
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction679
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tkwasnode3 = nodearraylist4
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var ptypenode4 = nodearraylist8
-                                       assert ptypenode4 isa nullable AType
-                                       var pexprnode1: nullable AAsCastExpr = new AAsCastExpr.init_aascastexpr(
-                                               pexprnode2,
-                                               tkwasnode3,
-                                               ptypenode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction680
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tkwasnode3 = nodearraylist4
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var tkwnotnode4 = nodearraylist8
-                                       assert tkwnotnode4 isa nullable TKwnot
-                                       var tkwnullnode5 = nodearraylist10
-                                       assert tkwnullnode5 isa nullable TKwnull
-                                       var pexprnode1: nullable AAsNotnullExpr = new AAsNotnullExpr.init_aasnotnullexpr(
-                                               pexprnode2,
-                                               tkwasnode3,
-                                               tkwnotnode4,
-                                               tkwnullnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction681
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-#                                      if listnode2 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode2
-                                               else
-                                                       listnode4.append(listnode2)
-                                               end
-#                                      end
-                                       if pexprnode3 != null then
-                                               listnode4.add(pexprnode3)
-                                       end
-                                       var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
-                                               listnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(56), node_list)
-       end
-init do end
-end
-private class ReduceAction682
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-#                                      if listnode2 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode2
-                                               else
-                                                       listnode5.append(listnode2)
-                                               end
-#                                      end
-#                                      if listnode3 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode3
-                                               else
-                                                       listnode5.append(listnode3)
-                                               end
-#                                      end
-                                       if pexprnode4 != null then
-                                               listnode5.add(pexprnode4)
-                                       end
-                                       var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(56), node_list)
-       end
-init do end
-end
-private class ReduceAction683
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       var pexprnode2 = nodearraylist3
-                                       assert pexprnode2 isa nullable AExpr
-                                       if pexprnode1 != null then
-                                               listnode3.add(pexprnode1)
-                                       end
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
-                                       node_list = listnode3
-                                       p.push(p.go_to(57), node_list)
-       end
-init do end
-end
-private class ReduceAction684
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tstartstringnode2 = nodearraylist1
-                                       assert tstartstringnode2 isa nullable TStartString
-                                       var pexprnode1: nullable AStartStringExpr = new AStartStringExpr.init_astartstringexpr(
-                                               tstartstringnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(58), node_list)
-       end
-init do end
-end
-private class ReduceAction685
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       var pexprnode2 = nodearraylist3
-                                       assert pexprnode2 isa nullable AExpr
-                                       if pexprnode1 != null then
-                                               listnode3.add(pexprnode1)
-                                       end
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
-                                       node_list = listnode3
-                                       p.push(p.go_to(59), node_list)
-       end
-init do end
-end
-private class ReduceAction686
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tmidstringnode2 = nodearraylist1
-                                       assert tmidstringnode2 isa nullable TMidString
-                                       var pexprnode1: nullable AMidStringExpr = new AMidStringExpr.init_amidstringexpr(
-                                               tmidstringnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
-       end
-init do end
-end
-private class ReduceAction687
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tendstringnode2 = nodearraylist1
-                                       assert tendstringnode2 isa nullable TEndString
-                                       var pexprnode1: nullable AEndStringExpr = new AEndStringExpr.init_aendstringexpr(
-                                               tendstringnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(61), node_list)
-       end
-init do end
-end
-private class ReduceAction688
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pexprnode1 = nodearraylist3
-                                       assert pexprnode1 isa nullable AExpr
-                                       if pexprnode1 != null then
-                                               listnode2.add(pexprnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(62), node_list)
-       end
-init do end
-end
-private class ReduceAction689
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pexprnode1 = nodearraylist3
-                                       assert pexprnode1 isa nullable AExpr
-                                       var listnode2 = nodearraylist5
-                                       assert listnode2 isa Array[Object]
-                                       if pexprnode1 != null then
-                                               listnode3.add(pexprnode1)
-                                       end
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       node_list = listnode3
-                                       p.push(p.go_to(62), node_list)
-       end
-init do end
-end
-private class ReduceAction690
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode1 = new Array[Object]
-                                       node_list = listnode1
-                                       p.push(p.go_to(62), node_list)
-       end
-init do end
-end
-private class ReduceAction691
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var listnode1 = new Array[Object]
-                                       node_list = listnode1
-                                       p.push(p.go_to(62), node_list)
-       end
-init do end
-end
-private class ReduceAction692
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pexprnode1 = nodearraylist3
-                                       assert pexprnode1 isa nullable AExpr
-                                       if pexprnode1 != null then
-                                               listnode2.add(pexprnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(63), node_list)
-       end
-init do end
-end
-private class ReduceAction693
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pexprnode1 = nodearraylist3
-                                       assert pexprnode1 isa nullable AExpr
-                                       var listnode2 = nodearraylist5
-                                       assert listnode2 isa Array[Object]
-                                       if pexprnode1 != null then
-                                               listnode3.add(pexprnode1)
-                                       end
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       node_list = listnode3
-                                       p.push(p.go_to(63), node_list)
-       end
-init do end
-end
-private class ReduceAction694
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       if pexprnode1 != null then
-                                               listnode2.add(pexprnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(63), node_list)
-       end
-init do end
-end
-private class ReduceAction695
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode1 = new Array[Object]
-                                       node_list = listnode1
-                                       p.push(p.go_to(63), node_list)
-       end
-init do end
-end
-private class ReduceAction696
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var listnode1 = new Array[Object]
-                                       node_list = listnode1
-                                       p.push(p.go_to(63), node_list)
-       end
-init do end
-end
-private class ReduceAction697
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pexprnode1 = nodearraylist3
-                                       assert pexprnode1 isa nullable AExpr
-                                       if pexprnode1 != null then
-                                               listnode2.add(pexprnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(64), node_list)
-       end
-init do end
-end
-private class ReduceAction698
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pexprnode1 = nodearraylist3
-                                       assert pexprnode1 isa nullable AExpr
-                                       var listnode2 = nodearraylist5
-                                       assert listnode2 isa Array[Object]
-                                       if pexprnode1 != null then
-                                               listnode3.add(pexprnode1)
-                                       end
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       node_list = listnode3
-                                       p.push(p.go_to(64), node_list)
-       end
-init do end
-end
-private class ReduceAction699
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist3
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(65), node_list)
-       end
-init do end
-end
-private class ReduceAction700
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var listnode1 = nodearraylist2
-                                       assert listnode1 isa Array[Object]
-#                                      if listnode1 != null then
-                                               if listnode2.is_empty then
-                                                       listnode2 = listnode1
-                                               else
-                                                       listnode2.append(listnode1)
-                                               end
-#                                      end
-                                       node_list = listnode2
-                                       p.push(p.go_to(66), node_list)
-       end
-init do end
-end
-private class ReduceAction701
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var listnode1 = nodearraylist1
-                                       assert listnode1 isa Array[Object]
-#                                      if listnode1 != null then
-                                               if listnode2.is_empty then
-                                                       listnode2 = listnode1
-                                               else
-                                                       listnode2.append(listnode1)
-                                               end
-#                                      end
-                                       node_list = listnode2
-                                       p.push(p.go_to(66), node_list)
-       end
-init do end
-end
-private class ReduceAction702
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var tidnode1 = nodearraylist1
-                                       assert tidnode1 isa nullable TId
-                                       if tidnode1 != null then
-                                               listnode2.add(tidnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(67), node_list)
-       end
-init do end
-end
-private class ReduceAction703
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode1 = nodearraylist1
-                                       assert listnode1 isa Array[Object]
-                                       var tidnode2 = nodearraylist5
-                                       assert tidnode2 isa nullable TId
-#                                      if listnode1 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode1
-                                               else
-                                                       listnode3.append(listnode1)
-                                               end
-#                                      end
-                                       if tidnode2 != null then
-                                               listnode3.add(tidnode2)
-                                       end
-                                       node_list = listnode3
-                                       p.push(p.go_to(67), node_list)
-       end
-init do end
-end
-private class ReduceAction704
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var tclassidnode3 = nodearraylist1
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode2,
-                                               tclassidnode3
-                                       )
-                                       node_list = pqualifiednode1
-                                       p.push(p.go_to(68), node_list)
-       end
-init do end
-end
-private class ReduceAction705
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       var tclassidnode4 = nodearraylist2
-                                       assert tclassidnode4 isa nullable TClassid
-                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode3,
-                                               tclassidnode4
-                                       )
-                                       node_list = pqualifiednode1
-                                       p.push(p.go_to(68), node_list)
-       end
-init do end
-end
-private class ReduceAction706
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode3,
-                                               null
-                                       )
-                                       node_list = pqualifiednode1
-                                       p.push(p.go_to(68), node_list)
-       end
-init do end
-end
-private class ReduceAction707
-special 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 tidnode1 = nodearraylist1
-                                       assert tidnode1 isa nullable TId
-                                       node_list = tidnode1
-                                       p.push(p.go_to(69), node_list)
-       end
-init do end
-end
-private class ReduceAction708
-special 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 tclassidnode1 = nodearraylist1
-                                       assert tclassidnode1 isa nullable TClassid
-                                       node_list = tclassidnode1
-                                       p.push(p.go_to(70), node_list)
-       end
-init do end
-end
-private class ReduceAction709
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       p.push(p.go_to(71), node_list)
-       end
-init do end
-end
-private class ReduceAction710
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       p.push(p.go_to(71), node_list)
-       end
-init do end
-end
-private class ReduceAction711
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       var pdocnode1: nullable ADoc = new ADoc.init_adoc(
-                                               listnode3
-                                       )
-                                       node_list = pdocnode1
-                                       p.push(p.go_to(72), node_list)
-       end
-init do end
-end
-private class ReduceAction712
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       var pdocnode1: nullable ADoc = new ADoc.init_adoc(
-                                               listnode3
-                                       )
-                                       node_list = pdocnode1
-                                       p.push(p.go_to(72), node_list)
-       end
-init do end
-end
-private class ReduceAction713
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       node_list = null
-                                       p.push(p.go_to(72), node_list)
-       end
-init do end
-end
-private class ReduceAction714
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       node_list = null
-                                       p.push(p.go_to(73), node_list)
-       end
-init do end
-end
-private class ReduceAction715
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode1 = nodearraylist1
-                                       assert pdocnode1 isa nullable ADoc
-                                       node_list = pdocnode1
-                                       p.push(p.go_to(73), node_list)
-       end
-init do end
-end
-private class ReduceAction716
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       p.push(p.go_to(74), node_list)
-       end
-init do end
-end
-private class ReduceAction717
-special 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
-                                       p.push(p.go_to(74), node_list)
-       end
-init do end
-end
-private class ReduceAction718
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       p.push(p.go_to(74), node_list)
-       end
-init do end
-end
-private class ReduceAction719
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var ppropdefnode1 = nodearraylist1
-                                       assert ppropdefnode1 isa nullable APropdef
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(75), node_list)
-       end
-init do end
-end
-private class ReduceAction720
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction721
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist4
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction722
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist4
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction723
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist4
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction724
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist4
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction725
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist4
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction726
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist4
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction727
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist4
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction728
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist4
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction729
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist4
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction730
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist4
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction731
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist4
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction732
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist8
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction733
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist4
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction734
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist5
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist8
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction735
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist6
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist7
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode10,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction736
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction737
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist5
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction738
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist5
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction739
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist5
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction740
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist5
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction741
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist5
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction742
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist5
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction743
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist5
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction744
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist5
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction745
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist5
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction746
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist5
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction747
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist5
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction748
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist9
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction749
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist5
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction750
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist6
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist9
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction751
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist7
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist8
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var pexprnode11 = nodearraylist10
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode10,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction752
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction753
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist4
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction754
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist4
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction755
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist4
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction756
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist4
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction757
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist4
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction758
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist4
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction759
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist4
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction760
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist4
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction761
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist4
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction762
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist4
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction763
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist4
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction764
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist8
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction765
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist4
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction766
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist5
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist8
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction767
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist6
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist7
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode10,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction768
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction769
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist5
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction770
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist5
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction771
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist5
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction772
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist5
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction773
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist5
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction774
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist5
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction775
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist5
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction776
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist5
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction777
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist5
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction778
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist5
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction779
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist5
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction780
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist9
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction781
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist5
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction782
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist6
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist9
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction783
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist7
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist8
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var pexprnode11 = nodearraylist10
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode10,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction784
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction785
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist4
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction786
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist4
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction787
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist4
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction788
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist4
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction789
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist4
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction790
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist4
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction791
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist4
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction792
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist4
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction793
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist4
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction794
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist4
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction795
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist4
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction796
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist9
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction797
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist4
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction798
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction799
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist5
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction800
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist5
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction801
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist5
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction802
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist5
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction803
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist5
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction804
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist5
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction805
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist5
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction806
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist5
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction807
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist5
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction808
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist5
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction809
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist5
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction810
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var pexprnode10 = nodearraylist10
-                                       assert pexprnode10 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               pexprnode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction811
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist5
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction812
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction813
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist4
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction814
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist4
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction815
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist4
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction816
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist4
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction817
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist4
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction818
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist4
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction819
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist4
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction820
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist4
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction821
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist4
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction822
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist4
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction823
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist4
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction824
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction825
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist4
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction826
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist5
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction827
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist6
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist7
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode10,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction828
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction829
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist5
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction830
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist5
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction831
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist5
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction832
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist5
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction833
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist5
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction834
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist5
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction835
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist5
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction836
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist5
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction837
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist5
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction838
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist5
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction839
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist5
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction840
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction841
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist5
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction842
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist6
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction843
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist7
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist8
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode10,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction844
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction845
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist4
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction846
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist4
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction847
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist4
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction848
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist4
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction849
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist4
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction850
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist4
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction851
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist4
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction852
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist4
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction853
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist4
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction854
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist4
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction855
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist4
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction856
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var tstringnode10 = nodearraylist9
-                                       assert tstringnode10 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               tstringnode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction857
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist4
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist5
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist8
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction858
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist4
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist5
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist6
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var tstringnode10 = nodearraylist9
-                                       assert tstringnode10 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               tstringnode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction859
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist4
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist5
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist6
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist7
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var tstringnode11 = nodearraylist10
-                                       assert tstringnode11 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode10,
-                                               tstringnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction860
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var pmethidnode6: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction861
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tplusnode7 = nodearraylist5
-                                       assert tplusnode7 isa nullable TPlus
-                                       var pmethidnode6: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction862
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tminusnode7 = nodearraylist5
-                                       assert tminusnode7 isa nullable TMinus
-                                       var pmethidnode6: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction863
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarnode7 = nodearraylist5
-                                       assert tstarnode7 isa nullable TStar
-                                       var pmethidnode6: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction864
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tslashnode7 = nodearraylist5
-                                       assert tslashnode7 isa nullable TSlash
-                                       var pmethidnode6: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction865
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tpercentnode7 = nodearraylist5
-                                       assert tpercentnode7 isa nullable TPercent
-                                       var pmethidnode6: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction866
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var teqnode7 = nodearraylist5
-                                       assert teqnode7 isa nullable TEq
-                                       var pmethidnode6: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction867
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tnenode7 = nodearraylist5
-                                       assert tnenode7 isa nullable TNe
-                                       var pmethidnode6: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction868
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tlenode7 = nodearraylist5
-                                       assert tlenode7 isa nullable TLe
-                                       var pmethidnode6: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction869
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgenode7 = nodearraylist5
-                                       assert tgenode7 isa nullable TGe
-                                       var pmethidnode6: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction870
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tltnode7 = nodearraylist5
-                                       assert tltnode7 isa nullable TLt
-                                       var pmethidnode6: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction871
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tgtnode7 = nodearraylist5
-                                       assert tgtnode7 isa nullable TGt
-                                       var pmethidnode6: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction872
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var pmethidnode6: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode7,
-                                               tcbranode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var tstringnode10 = nodearraylist10
-                                       assert tstringnode10 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               tstringnode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction873
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tstarshipnode7 = nodearraylist5
-                                       assert tstarshipnode7 isa nullable TStarship
-                                       var pmethidnode6: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode7
-                                       )
-                                       var psignaturenode8 = nodearraylist6
-                                       assert psignaturenode8 isa nullable ASignature
-                                       var tstringnode9 = nodearraylist9
-                                       assert tstringnode9 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode8,
-                                               tstringnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction874
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tidnode7 = nodearraylist5
-                                       assert tidnode7 isa nullable TId
-                                       var tassignnode8 = nodearraylist6
-                                       assert tassignnode8 isa nullable TAssign
-                                       var pmethidnode6: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode7,
-                                               tassignnode8
-                                       )
-                                       var psignaturenode9 = nodearraylist7
-                                       assert psignaturenode9 isa nullable ASignature
-                                       var tstringnode10 = nodearraylist10
-                                       assert tstringnode10 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode9,
-                                               tstringnode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction875
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var tobranode7 = nodearraylist5
-                                       assert tobranode7 isa nullable TObra
-                                       var tcbranode8 = nodearraylist6
-                                       assert tcbranode8 isa nullable TCbra
-                                       var tassignnode9 = nodearraylist7
-                                       assert tassignnode9 isa nullable TAssign
-                                       var pmethidnode6: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode7,
-                                               tcbranode8,
-                                               tassignnode9
-                                       )
-                                       var psignaturenode10 = nodearraylist8
-                                       assert psignaturenode10 isa nullable ASignature
-                                       var tstringnode11 = nodearraylist11
-                                       assert tstringnode11 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode10,
-                                               tstringnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction876
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var ptypenode3 = nodearraylist1
-                                       assert ptypenode3 isa nullable AType
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
-                                               ptypenode3,
-                                               listnode5
-                                       )
-                                       node_list = psignaturenode1
-                                       p.push(p.go_to(77), node_list)
-       end
-init do end
-end
-private class ReduceAction877
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       var ptypenode4 = nodearraylist2
-                                       assert ptypenode4 isa nullable AType
-                                       var listnode5 = nodearraylist3
-                                       assert listnode5 isa Array[Object]
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode3,
-                                               ptypenode4,
-                                               listnode6
-                                       )
-                                       node_list = psignaturenode1
-                                       p.push(p.go_to(77), node_list)
-       end
-init do end
-end
-private class ReduceAction878
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var ptypenode3 = nodearraylist1
-                                       assert ptypenode3 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
-                                               ptypenode3,
-                                               listnode4
-                                       )
-                                       node_list = psignaturenode1
-                                       p.push(p.go_to(77), node_list)
-       end
-init do end
-end
-private class ReduceAction879
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       var ptypenode4 = nodearraylist2
-                                       assert ptypenode4 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode3,
-                                               ptypenode4,
-                                               listnode5
-                                       )
-                                       node_list = psignaturenode1
-                                       p.push(p.go_to(77), node_list)
-       end
-init do end
-end
-private class ReduceAction880
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tclassidnode3 = nodearraylist1
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               null,
-                                               tclassidnode3,
-                                               listnode4
-                                       )
-                                       node_list = ptypenode1
-                                       p.push(p.go_to(78), node_list)
-       end
-init do end
-end
-private class ReduceAction881
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwnullablenode2 = nodearraylist1
-                                       assert tkwnullablenode2 isa nullable TKwnullable
-                                       var tclassidnode3 = nodearraylist2
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               tkwnullablenode2,
-                                               tclassidnode3,
-                                               listnode4
-                                       )
-                                       node_list = ptypenode1
-                                       p.push(p.go_to(78), node_list)
-       end
-init do end
-end
-private class ReduceAction882
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(79), node_list)
-       end
-init do end
-end
-private class ReduceAction883
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var listnode6 = nodearraylist6
-                                       assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(79), node_list)
-       end
-init do end
-end
-private class ReduceAction884
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(79), node_list)
-       end
-init do end
-end
-private class ReduceAction885
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(80), node_list)
-       end
-init do end
-end
-private class ReduceAction886
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwthennode4 = nodearraylist5
-                                       assert tkwthennode4 isa nullable TKwthen
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable AExpr
-                                       var tkwelsenode6 = nodearraylist9
-                                       assert tkwelsenode6 isa nullable TKwelse
-                                       var pexprnode7 = nodearraylist11
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable AIfexprExpr = new AIfexprExpr.init_aifexprexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               tkwthennode4,
-                                               pexprnode5,
-                                               tkwelsenode6,
-                                               pexprnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(80), node_list)
-       end
-init do end
-end
-private class ReduceAction887
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
-       end
-init do end
-end
-private class ReduceAction888
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
-       end
-init do end
-end
-private class ReduceAction889
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
-       end
-init do end
-end
-private class ReduceAction890
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
-       end
-init do end
-end
-private class ReduceAction891
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwnotnode2 = nodearraylist1
-                                       assert tkwnotnode2 isa nullable TKwnot
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ANotExpr = new ANotExpr.init_anotexpr(
-                                               tkwnotnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
-       end
-init do end
-end
-private class ReduceAction892
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
-       end
-init do end
-end
-private class ReduceAction893
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
-       end
-init do end
-end
-private class ReduceAction894
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AEeExpr = new AEeExpr.init_aeeexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
-       end
-init do end
-end
-private class ReduceAction895
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
-       end
-init do end
-end
-private class ReduceAction896
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
-       end
-init do end
-end
-private class ReduceAction897
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
-       end
-init do end
-end
-private class ReduceAction898
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
-       end
-init do end
-end
-private class ReduceAction899
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
-       end
-init do end
-end
-private class ReduceAction900
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
-       end
-init do end
-end
-private class ReduceAction901
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var ptypenode3 = nodearraylist4
-                                       assert ptypenode3 isa nullable AType
-                                       var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
-                                               pexprnode2,
-                                               ptypenode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
-       end
-init do end
-end
-private class ReduceAction902
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
-       end
-init do end
-end
-private class ReduceAction903
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
-       end
-init do end
-end
-private class ReduceAction904
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
-       end
-init do end
-end
-private class ReduceAction905
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
-       end
-init do end
-end
-private class ReduceAction906
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
-       end
-init do end
-end
-private class ReduceAction907
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
-       end
-init do end
-end
-private class ReduceAction908
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
-       end
-init do end
-end
-private class ReduceAction909
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(86), node_list)
-       end
-init do end
-end
-private class ReduceAction910
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tminusnode2 = nodearraylist1
-                                       assert tminusnode2 isa nullable TMinus
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
-                                               tminusnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(86), node_list)
-       end
-init do end
-end
-private class ReduceAction911
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwoncenode2 = nodearraylist1
-                                       assert tkwoncenode2 isa nullable TKwonce
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
-                                               tkwoncenode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(86), node_list)
-       end
-init do end
-end
-private class ReduceAction912
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(87), node_list)
-       end
-init do end
-end
-private class ReduceAction913
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode6 = new Array[Object]
-                                       var tkwnewnode2 = nodearraylist1
-                                       assert tkwnewnode2 isa nullable TKwnew
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable AType
-                                       var listnode5 = nodearraylist4
-                                       assert listnode5 isa Array[Object]
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               null,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(87), node_list)
-       end
-init do end
-end
-private class ReduceAction914
-special 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 tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tattridnode4 = nodearraylist5
-                                       assert tattridnode4 isa nullable TAttrid
-                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
-                                               tkwissetnode2,
-                                               pexprnode3,
-                                               tattridnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(87), node_list)
-       end
-init do end
-end
-private class ReduceAction915
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tattridnode4 = nodearraylist2
-                                       assert tattridnode4 isa nullable TAttrid
-                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
-                                               tkwissetnode2,
-                                               pexprnode3,
-                                               tattridnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(87), node_list)
-       end
-init do end
-end
-private class ReduceAction916
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist4
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
-                                               pexprnode2,
-                                               tattridnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction917
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tattridnode3 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
-                                               pexprnode2,
-                                               tattridnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction918
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction919
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction920
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tkwsupernode3 = nodearraylist1
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               null,
-                                               tkwsupernode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction921
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pqualifiednode2 = nodearraylist1
-                                       assert pqualifiednode2 isa nullable AQualified
-                                       var tkwsupernode3 = nodearraylist2
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               pqualifiednode2,
-                                               tkwsupernode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction922
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tkwinitnode3 = nodearraylist4
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction923
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tkwinitnode3 = nodearraylist1
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction924
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode6 = new Array[Object]
-                                       var tkwnewnode2 = nodearraylist1
-                                       assert tkwnewnode2 isa nullable TKwnew
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable AType
-                                       var tidnode4 = nodearraylist6
-                                       assert tidnode4 isa nullable TId
-                                       var listnode5 = nodearraylist7
-                                       assert listnode5 isa Array[Object]
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               tidnode4,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction925
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwselfnode2 = nodearraylist1
-                                       assert tkwselfnode2 isa nullable TKwself
-                                       var pexprnode1: nullable ASelfExpr = new ASelfExpr.init_aselfexpr(
-                                               tkwselfnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction926
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwtruenode2 = nodearraylist1
-                                       assert tkwtruenode2 isa nullable TKwtrue
-                                       var pexprnode1: nullable ATrueExpr = new ATrueExpr.init_atrueexpr(
-                                               tkwtruenode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction927
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwfalsenode2 = nodearraylist1
-                                       assert tkwfalsenode2 isa nullable TKwfalse
-                                       var pexprnode1: nullable AFalseExpr = new AFalseExpr.init_afalseexpr(
-                                               tkwfalsenode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction928
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwnullnode2 = nodearraylist1
-                                       assert tkwnullnode2 isa nullable TKwnull
-                                       var pexprnode1: nullable ANullExpr = new ANullExpr.init_anullexpr(
-                                               tkwnullnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction929
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tnumbernode2 = nodearraylist1
-                                       assert tnumbernode2 isa nullable TNumber
-                                       var pexprnode1: nullable AIntExpr = new AIntExpr.init_aintexpr(
-                                               tnumbernode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction930
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tfloatnode2 = nodearraylist1
-                                       assert tfloatnode2 isa nullable TFloat
-                                       var pexprnode1: nullable AFloatExpr = new AFloatExpr.init_afloatexpr(
-                                               tfloatnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction931
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tcharnode2 = nodearraylist1
-                                       assert tcharnode2 isa nullable TChar
-                                       var pexprnode1: nullable ACharExpr = new ACharExpr.init_acharexpr(
-                                               tcharnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction932
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tstringnode2 = nodearraylist1
-                                       assert tstringnode2 isa nullable TString
-                                       var pexprnode1: nullable AStringExpr = new AStringExpr.init_astringexpr(
-                                               tstringnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction933
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction934
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist2
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction935
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tkwasnode3 = nodearraylist4
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var ptypenode4 = nodearraylist8
-                                       assert ptypenode4 isa nullable AType
-                                       var pexprnode1: nullable AAsCastExpr = new AAsCastExpr.init_aascastexpr(
-                                               pexprnode2,
-                                               tkwasnode3,
-                                               ptypenode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction936
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tkwasnode3 = nodearraylist4
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var tkwnotnode4 = nodearraylist8
-                                       assert tkwnotnode4 isa nullable TKwnot
-                                       var tkwnullnode5 = nodearraylist10
-                                       assert tkwnullnode5 isa nullable TKwnull
-                                       var pexprnode1: nullable AAsNotnullExpr = new AAsNotnullExpr.init_aasnotnullexpr(
-                                               pexprnode2,
-                                               tkwasnode3,
-                                               tkwnotnode4,
-                                               tkwnullnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction937
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pexprnode2 = nodearraylist2
-                                       assert pexprnode2 isa nullable AExpr
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
-       end
-init do end
-end
-private class ReduceAction938
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode2 = nodearraylist2
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       if pexprnode2 != null then
-                                               listnode4.add(pexprnode2)
-                                       end
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
-       end
-init do end
-end
-private class ReduceAction939
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
-       end
-init do end
-end
-private class ReduceAction940
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
-       end
-init do end
-end
-private class ReduceAction941
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
-       end
-init do end
-end
-private class ReduceAction942
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction943
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction944
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwreturnnode2 = nodearraylist1
-                                       assert tkwreturnnode2 isa nullable TKwreturn
-                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
-                                               tkwreturnnode2,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction945
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwreturnnode2 = nodearraylist1
-                                       assert tkwreturnnode2 isa nullable TKwreturn
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
-                                               tkwreturnnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction946
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
-                                               null,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction947
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var plabelnode3 = nodearraylist2
-                                       assert plabelnode3 isa nullable ALabel
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
-                                               plabelnode3,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction948
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var pexprnode4 = nodearraylist2
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
-                                               null,
-                                               pexprnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction949
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var plabelnode3 = nodearraylist2
-                                       assert plabelnode3 isa nullable ALabel
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
-                                               plabelnode3,
-                                               pexprnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction950
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwabortnode2 = nodearraylist1
-                                       assert tkwabortnode2 isa nullable TKwabort
-                                       var pexprnode1: nullable AAbortExpr = new AAbortExpr.init_aabortexpr(
-                                               tkwabortnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction951
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwcontinuenode2 = nodearraylist1
-                                       assert tkwcontinuenode2 isa nullable TKwcontinue
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
-                                               null,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction952
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwcontinuenode2 = nodearraylist1
-                                       assert tkwcontinuenode2 isa nullable TKwcontinue
-                                       var plabelnode3 = nodearraylist2
-                                       assert plabelnode3 isa nullable ALabel
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
-                                               plabelnode3,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction953
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwcontinuenode2 = nodearraylist1
-                                       assert tkwcontinuenode2 isa nullable TKwcontinue
-                                       var pexprnode4 = nodearraylist2
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
-                                               null,
-                                               pexprnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction954
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwcontinuenode2 = nodearraylist1
-                                       assert tkwcontinuenode2 isa nullable TKwcontinue
-                                       var plabelnode3 = nodearraylist2
-                                       assert plabelnode3 isa nullable ALabel
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
-                                               plabelnode3,
-                                               pexprnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction955
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction956
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction957
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction958
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction959
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction960
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction961
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction962
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction963
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var listnode6 = nodearraylist6
-                                       assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction964
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction965
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tkwsupernode3 = nodearraylist1
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               null,
-                                               tkwsupernode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction966
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pqualifiednode2 = nodearraylist1
-                                       assert pqualifiednode2 isa nullable AQualified
-                                       var tkwsupernode3 = nodearraylist2
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               pqualifiednode2,
-                                               tkwsupernode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction967
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tkwinitnode3 = nodearraylist4
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction968
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tkwinitnode3 = nodearraylist1
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
-       end
-init do end
-end
-private class ReduceAction969
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pclosuredefnode1 = nodearraylist1
-                                       assert pclosuredefnode1 isa nullable AClosureDef
-                                       if pclosuredefnode1 != null then
-                                               listnode2.add(pclosuredefnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(91), node_list)
-       end
-init do end
-end
-private class ReduceAction970
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pclosuredefnode1 = nodearraylist1
-                                       assert pclosuredefnode1 isa nullable AClosureDef
-                                       var listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       if pclosuredefnode1 != null then
-                                               listnode3.add(pclosuredefnode1)
-                                       end
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       node_list = listnode3
-                                       p.push(p.go_to(91), node_list)
-       end
-init do end
-end
-private class ReduceAction971
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable AExpr
-                                       if pexprnode7 != null then
-                                               listnode8.add(pexprnode7)
-                                       end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(92), node_list)
-       end
-init do end
-end
-private class ReduceAction972
-special 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 listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode9 = new Array[Object]
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable AExpr
-                                       var listnode8 = nodearraylist6
-                                       assert listnode8 isa Array[Object]
-                                       if pexprnode7 != null then
-                                               listnode9.add(pexprnode7)
-                                       end
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-#                                      end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode9
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(92), node_list)
-       end
-init do end
-end
-private class ReduceAction973
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(92), node_list)
-       end
-init do end
-end
-private class ReduceAction974
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(92), node_list)
-       end
-init do end
-end
-private class ReduceAction975
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var listnode9 = new Array[Object]
-                                       var pexprnode8 = nodearraylist6
-                                       assert pexprnode8 isa nullable AExpr
-                                       if pexprnode8 != null then
-                                               listnode9.add(pexprnode8)
-                                       end
-                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode9
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(92), node_list)
-       end
-init do end
-end
-private class ReduceAction976
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var listnode10 = new Array[Object]
-                                       var pexprnode8 = nodearraylist6
-                                       assert pexprnode8 isa nullable AExpr
-                                       var listnode9 = nodearraylist7
-                                       assert listnode9 isa Array[Object]
-                                       if pexprnode8 != null then
-                                               listnode10.add(pexprnode8)
-                                       end
-#                                      if listnode9 != null then
-                                               if listnode10.is_empty then
-                                                       listnode10 = listnode9
-                                               else
-                                                       listnode10.append(listnode9)
-                                               end
-#                                      end
-                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode10
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(92), node_list)
-       end
-init do end
-end
-private class ReduceAction977
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(92), node_list)
-       end
-init do end
-end
-private class ReduceAction978
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(92), node_list)
-       end
-init do end
-end
-private class ReduceAction979
-special 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 listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable AExpr
-                                       if pexprnode7 != null then
-                                               listnode8.add(pexprnode7)
-                                       end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var plabelnode9 = nodearraylist8
-                                       assert plabelnode9 isa nullable ALabel
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode9
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(92), node_list)
-       end
-init do end
-end
-private class ReduceAction980
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode9 = new Array[Object]
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable AExpr
-                                       var listnode8 = nodearraylist6
-                                       assert listnode8 isa Array[Object]
-                                       if pexprnode7 != null then
-                                               listnode9.add(pexprnode7)
-                                       end
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-#                                      end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode9
-                                       )
-                                       var plabelnode10 = nodearraylist9
-                                       assert plabelnode10 isa nullable ALabel
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode10
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(92), node_list)
-       end
-init do end
-end
-private class ReduceAction981
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
-                                       )
-                                       var plabelnode8 = nodearraylist6
-                                       assert plabelnode8 isa nullable ALabel
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode8
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(92), node_list)
-       end
-init do end
-end
-private class ReduceAction982
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
-                                       )
-                                       var plabelnode8 = nodearraylist5
-                                       assert plabelnode8 isa nullable ALabel
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode8
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(92), node_list)
-       end
-init do end
-end
-private class ReduceAction983
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var listnode9 = new Array[Object]
-                                       var pexprnode8 = nodearraylist6
-                                       assert pexprnode8 isa nullable AExpr
-                                       if pexprnode8 != null then
-                                               listnode9.add(pexprnode8)
-                                       end
-                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode9
-                                       )
-                                       var plabelnode10 = nodearraylist9
-                                       assert plabelnode10 isa nullable ALabel
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               plabelnode10
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(92), node_list)
-       end
-init do end
-end
-private class ReduceAction984
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var listnode10 = new Array[Object]
-                                       var pexprnode8 = nodearraylist6
-                                       assert pexprnode8 isa nullable AExpr
-                                       var listnode9 = nodearraylist7
-                                       assert listnode9 isa Array[Object]
-                                       if pexprnode8 != null then
-                                               listnode10.add(pexprnode8)
-                                       end
-#                                      if listnode9 != null then
-                                               if listnode10.is_empty then
-                                                       listnode10 = listnode9
-                                               else
-                                                       listnode10.append(listnode9)
-                                               end
-#                                      end
-                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode10
-                                       )
-                                       var plabelnode11 = nodearraylist10
-                                       assert plabelnode11 isa nullable ALabel
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               plabelnode11
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(92), node_list)
-       end
-init do end
-end
-private class ReduceAction985
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var plabelnode9 = nodearraylist7
-                                       assert plabelnode9 isa nullable ALabel
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               plabelnode9
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(92), node_list)
-       end
-init do end
-end
-private class ReduceAction986
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var plabelnode9 = nodearraylist6
-                                       assert plabelnode9 isa nullable ALabel
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               plabelnode9
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(92), node_list)
-       end
-init do end
-end
-private class ReduceAction987
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(92), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction988
+private class ReduceAction450
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
+                                               null,
                                                null
                                        )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(92), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction989
+private class ReduceAction451
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var pexprnode6 = nodearraylist5
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               null,
-                                               pexprnode6,
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
+                                               plabelnode3,
                                                null
                                        )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(92), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction990
+private class ReduceAction452
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode7 = nodearraylist6
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
                                                null,
-                                               pexprnode7,
-                                               null
+                                               pexprnode4
                                        )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(92), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction991
+private class ReduceAction453
 special 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 pexprnode4 = nodearraylist1
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode4 = nodearraylist3
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               null,
-                                               null,
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
+                                               plabelnode3,
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(93), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction992
+private class ReduceAction454
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               null,
-                                               null,
-                                               null
+                                       var tkwabortnode2 = nodearraylist1
+                                       assert tkwabortnode2 isa nullable TKwabort
+                                       var pexprnode1: nullable AAbortExpr = new AAbortExpr.init_aabortexpr(
+                                               tkwabortnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(94), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction993
+private class ReduceAction455
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var ptypenode4 = nodearraylist3
-                                       assert ptypenode4 isa nullable AType
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               ptypenode4,
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
                                                null,
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(94), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction994
+private class ReduceAction456
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var tassignnode5 = nodearraylist3
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist5
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               null,
-                                               tassignnode5,
-                                               pexprnode6
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
+                                               plabelnode3,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(94), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction995
+private class ReduceAction457
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var ptypenode4 = nodearraylist3
-                                       assert ptypenode4 isa nullable AType
-                                       var tassignnode5 = nodearraylist4
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist6
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               ptypenode4,
-                                               tassignnode5,
-                                               pexprnode6
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
+                                               null,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(94), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction996
+private class ReduceAction458
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist4
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist5
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
+                                               plabelnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction997
+private class ReduceAction459
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tattridnode3 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist2
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist3
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
-                                       )
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
                                        p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction998
+private class ReduceAction460
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tassignnode6 = nodearraylist6
-                                       assert tassignnode6 isa nullable TAssign
-                                       var pexprnode7 = nodearraylist7
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               tassignnode6,
-                                               pexprnode7
-                                       )
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
                                        p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction999
+private class ReduceAction461
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tassignnode6 = nodearraylist3
-                                       assert tassignnode6 isa nullable TAssign
-                                       var pexprnode7 = nodearraylist4
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               tassignnode6,
-                                               pexprnode7
-                                       )
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
                                        p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction1000
+private class ReduceAction462
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var tassignnode5 = nodearraylist3
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable ABraAssignExpr = new ABraAssignExpr.init_abraassignexpr(
-                                               pexprnode2,
-                                               listnode4,
-                                               tassignnode5,
-                                               pexprnode6
-                                       )
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
                                        p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction1001
+private class ReduceAction463
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist4
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist5
-                                       assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
-                                       )
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
                                        p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction1002
+private class ReduceAction464
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tattridnode3 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist2
-                                       assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist3
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
-                                       )
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
                                        p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction1003
+private class ReduceAction465
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode5 = new Array[Object]
+                                       var listnode6 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
                                        var tidnode3 = nodearraylist4
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var passignopnode6 = nodearraylist6
-                                       assert passignopnode6 isa nullable AAssignOp
-                                       var pexprnode7 = nodearraylist7
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
                                                listnode5,
-                                               passignopnode6,
-                                               pexprnode7
+                                               listnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction1004
+private class ReduceAction466
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode5 = new Array[Object]
+                                       var listnode6 = new Array[Object]
                                        var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
                                        var tidnode3 = nodearraylist1
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var passignopnode6 = nodearraylist3
-                                       assert passignopnode6 isa nullable AAssignOp
-                                       var pexprnode7 = nodearraylist4
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
                                                listnode5,
-                                               passignopnode6,
-                                               pexprnode7
+                                               listnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction1005
+private class ReduceAction467
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var passignopnode5 = nodearraylist3
-                                       assert passignopnode5 isa nullable AAssignOp
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable ABraReassignExpr = new ABraReassignExpr.init_abrareassignexpr(
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var listnode6 = nodearraylist6
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               listnode4,
-                                               passignopnode5,
-                                               pexprnode6
+                                               tidnode3,
+                                               listnode5,
+                                               listnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction1006
+private class ReduceAction468
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
                                        var listnode5 = new Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       if pexprnode4 != null then
-                                               listnode5.add(pexprnode4)
-                                       end
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode5
-                                       )
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(96), node_list)
-       end
-init do end
-end
-private class ReduceAction1007
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var listnode5 = nodearraylist4
-                                       assert listnode5 isa Array[Object]
-                                       if pexprnode4 != null then
-                                               listnode6.add(pexprnode4)
-                                       end
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
-                                       )
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(96), node_list)
-       end
-init do end
-end
-private class ReduceAction1008
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               null
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var listnode6 = nodearraylist3
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(96), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction1009
+private class ReduceAction469
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
-                                       )
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               null
+                                       var listnode5 = new Array[Object]
+                                       var tkwsupernode3 = nodearraylist1
+                                       assert tkwsupernode3 isa nullable TKwsuper
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                               null,
+                                               tkwsupernode3,
+                                               listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(96), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction1010
+private class ReduceAction470
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
                                        var listnode5 = new Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       if pexprnode4 != null then
-                                               listnode5.add(pexprnode4)
-                                       end
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                       var pqualifiednode2 = nodearraylist1
+                                       assert pqualifiednode2 isa nullable AQualified
+                                       var tkwsupernode3 = nodearraylist2
+                                       assert tkwsupernode3 isa nullable TKwsuper
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode3,
                                                listnode5
                                        )
-                                       var plabelnode6 = nodearraylist6
-                                       assert plabelnode6 isa nullable ALabel
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               plabelnode6
-                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(96), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction1011
+private class ReduceAction471
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var listnode5 = nodearraylist4
-                                       assert listnode5 isa Array[Object]
-                                       if pexprnode4 != null then
-                                               listnode6.add(pexprnode4)
-                                       end
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
-                                       )
-                                       var plabelnode7 = nodearraylist7
-                                       assert plabelnode7 isa nullable ALabel
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               plabelnode7
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwinitnode3 = nodearraylist4
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(96), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction1012
+private class ReduceAction472
 special 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 tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       var plabelnode5 = nodearraylist4
-                                       assert plabelnode5 isa nullable ALabel
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               plabelnode5
+                                       var tkwinitnode3 = nodearraylist1
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(96), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction1013
+private class ReduceAction473
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
-                                       )
-                                       var plabelnode5 = nodearraylist3
-                                       assert plabelnode5 isa nullable ALabel
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               plabelnode5
-                                       )
-                                       node_list = pexprnode1
+                                       var listnode2 = new Array[Object]
+                                       var pclosuredefnode1 = nodearraylist1
+                                       assert pclosuredefnode1 isa nullable AClosureDef
+                                       if pclosuredefnode1 != null then
+                                               listnode2.add(pclosuredefnode1)
+                                       end
+                                       node_list = listnode2
                                        p.push(p.go_to(96), node_list)
        end
 init do end
 end
-private class ReduceAction1014
+private class ReduceAction474
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               null
-                                       )
-                                       node_list = pexprnode1
+                                       var listnode3 = new Array[Object]
+                                       var pclosuredefnode1 = nodearraylist1
+                                       assert pclosuredefnode1 isa nullable AClosureDef
+                                       var listnode2 = nodearraylist2
+                                       assert listnode2 isa Array[Object]
+                                       if pclosuredefnode1 != null then
+                                               listnode3.add(pclosuredefnode1)
+                                       end
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
                                        p.push(p.go_to(96), node_list)
        end
 init do end
 end
-private class ReduceAction1015
+private class ReduceAction475
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode4 = nodearraylist6
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode5 = nodearraylist8
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               pexprnode5
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var plabelnode7 = nodearraylist5
+                                       assert plabelnode7 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode7
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pclosuredefnode1
                                        p.push(p.go_to(97), node_list)
        end
 init do end
 end
-private class ReduceAction1016
+private class ReduceAction476
 special 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 tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
                                        var listnode5 = new Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       if pexprnode4 != null then
-                                               listnode5.add(pexprnode4)
-                                       end
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode5
-                                       )
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               null
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       var plabelnode8 = nodearraylist6
+                                       assert plabelnode8 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               plabelnode8
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(98), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(97), node_list)
        end
 init do end
 end
-private class ReduceAction1017
+private class ReduceAction477
 special 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 tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var listnode5 = nodearraylist4
-                                       assert listnode5 isa Array[Object]
-                                       if pexprnode4 != null then
-                                               listnode6.add(pexprnode4)
-                                       end
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
-                                       )
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(98), node_list)
-       end
-init do end
-end
-private class ReduceAction1018
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
-                                       )
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(98), node_list)
-       end
-init do end
-end
-private class ReduceAction1019
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
                                        var listnode4 = new Array[Object]
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
-                                       )
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
                                                null
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(98), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(97), node_list)
        end
 init do end
 end
-private class ReduceAction1020
+private class ReduceAction478
 special 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 tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
                                        var listnode5 = new Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       if pexprnode4 != null then
-                                               listnode5.add(pexprnode4)
-                                       end
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode5
-                                       )
-                                       var plabelnode6 = nodearraylist6
-                                       assert plabelnode6 isa nullable ALabel
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               plabelnode6
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               null
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(98), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(97), node_list)
        end
 init do end
 end
-private class ReduceAction1021
+private class ReduceAction479
 special 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 tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var listnode5 = nodearraylist4
-                                       assert listnode5 isa Array[Object]
-                                       if pexprnode4 != null then
-                                               listnode6.add(pexprnode4)
-                                       end
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
-                                       )
-                                       var plabelnode7 = nodearraylist7
-                                       assert plabelnode7 isa nullable ALabel
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               plabelnode7
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var pexprnode6 = nodearraylist5
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               null,
+                                               pexprnode6,
+                                               null
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(98), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(97), node_list)
        end
 init do end
 end
-private class ReduceAction1022
+private class ReduceAction480
 special 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 tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
-                                       )
-                                       var plabelnode5 = nodearraylist4
-                                       assert plabelnode5 isa nullable ALabel
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               plabelnode5
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprnode7 = nodearraylist6
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               null,
+                                               pexprnode7,
+                                               null
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(98), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(97), node_list)
        end
 init do end
 end
-private class ReduceAction1023
+private class ReduceAction481
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
-                                       )
-                                       var plabelnode5 = nodearraylist3
-                                       assert plabelnode5 isa nullable ALabel
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               plabelnode5
+                                       var pexprnode4 = nodearraylist1
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               null,
+                                               null,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(98), node_list)
        end
 init do end
 end
-private class ReduceAction1024
+private class ReduceAction482
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               null,
+                                               null,
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(98), node_list)
+                                       p.push(p.go_to(99), node_list)
        end
 init do end
 end
-private class ReduceAction1025
+private class ReduceAction483
 special 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 tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6 = nodearraylist7
-                                       assert pexprnode6 isa nullable AExpr
-                                       if pexprnode6 != null then
-                                               listnode7.add(pexprnode6)
-                                       end
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
-                                       )
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist3
+                                       assert ptypenode4 isa nullable AType
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
+                                               null,
                                                null
                                        )
                                        node_list = pexprnode1
@@ -39510,92 +13240,70 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction1026
+private class ReduceAction484
 special 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 tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode6 = nodearraylist7
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var tassignnode5 = nodearraylist3
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist5
                                        assert pexprnode6 isa nullable AExpr
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       if pexprnode6 != null then
-                                               listnode8.add(pexprnode6)
-                                       end
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               null
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               null,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(99), node_list)
        end
 init do end
 end
-private class ReduceAction1027
+private class ReduceAction485
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
-                                       )
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               null
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist3
+                                       assert ptypenode4 isa nullable AType
+                                       var tassignnode5 = nodearraylist4
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(99), node_list)
        end
 init do end
 end
-private class ReduceAction1028
+private class ReduceAction486
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -39606,81 +13314,57 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
-                                       )
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist4
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var tassignnode4 = nodearraylist5
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               tassignnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(99), node_list)
+                                       p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction1029
+private class ReduceAction487
 special 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 tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6 = nodearraylist7
-                                       assert pexprnode6 isa nullable AExpr
-                                       if pexprnode6 != null then
-                                               listnode7.add(pexprnode6)
-                                       end
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       var plabelnode8 = nodearraylist10
-                                       assert plabelnode8 isa nullable ALabel
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode8
+                                       var tattridnode3 = nodearraylist1
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var tassignnode4 = nodearraylist2
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode5 = nodearraylist3
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               tassignnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(99), node_list)
+                                       p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction1030
+private class ReduceAction488
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -39688,118 +13372,94 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode6 = nodearraylist7
-                                       assert pexprnode6 isa nullable AExpr
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       if pexprnode6 != null then
-                                               listnode8.add(pexprnode6)
-                                       end
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
-                                               end
-#                                      end
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var plabelnode9 = nodearraylist11
-                                       assert plabelnode9 isa nullable ALabel
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode9
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var tassignnode6 = nodearraylist6
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist7
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               tassignnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(99), node_list)
+                                       p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction1031
+private class ReduceAction489
 special 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 tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       var plabelnode7 = nodearraylist8
-                                       assert plabelnode7 isa nullable ALabel
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode7
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var tassignnode6 = nodearraylist3
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist4
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               tassignnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(99), node_list)
+                                       p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction1032
+private class ReduceAction490
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
-                                       )
-                                       var plabelnode7 = nodearraylist7
-                                       assert plabelnode7 isa nullable ALabel
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode7
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tassignnode5 = nodearraylist3
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ABraAssignExpr = new ABraAssignExpr.init_abraassignexpr(
+                                               pexprnode2,
+                                               listnode4,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(99), node_list)
+                                       p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction1033
+private class ReduceAction491
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -39810,37 +13470,57 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist4
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var passignopnode4 = nodearraylist5
+                                       assert passignopnode4 isa nullable AAssignOp
                                        var pexprnode5 = nodearraylist6
                                        assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               null
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(99), node_list)
+                                       p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction1034
+private class ReduceAction492
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tattridnode3 = nodearraylist1
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var passignopnode4 = nodearraylist2
+                                       assert passignopnode4 isa nullable AAssignOp
+                                       var pexprnode5 = nodearraylist3
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(100), node_list)
+       end
+init do end
+end
+private class ReduceAction493
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -39848,186 +13528,143 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var tidnode3 = nodearraylist3
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
                                        assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tkwdonode5 = nodearraylist9
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7 = nodearraylist11
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var passignopnode6 = nodearraylist6
+                                       assert passignopnode6 isa nullable AAssignOp
+                                       var pexprnode7 = nodearraylist7
                                        assert pexprnode7 isa nullable AExpr
-                                       if pexprnode7 != null then
-                                               listnode8.add(pexprnode7)
-                                       end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
                                                tidnode3,
-                                               pexprnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
+                                               listnode5,
+                                               passignopnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction1035
+private class ReduceAction494
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist14 = p.pop
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var tidnode3 = nodearraylist3
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tidnode3 = nodearraylist1
                                        assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tkwdonode5 = nodearraylist9
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode9 = new Array[Object]
-                                       var pexprnode7 = nodearraylist11
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var passignopnode6 = nodearraylist3
+                                       assert passignopnode6 isa nullable AAssignOp
+                                       var pexprnode7 = nodearraylist4
                                        assert pexprnode7 isa nullable AExpr
-                                       var listnode8 = nodearraylist12
-                                       assert listnode8 isa Array[Object]
-                                       if pexprnode7 != null then
-                                               listnode9.add(pexprnode7)
-                                       end
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-#                                      end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode9
-                                       )
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
                                                tidnode3,
-                                               pexprnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
+                                               listnode5,
+                                               passignopnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction1036
+private class ReduceAction495
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var tidnode3 = nodearraylist3
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tkwdonode5 = nodearraylist9
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
-                                       )
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var passignopnode5 = nodearraylist3
+                                       assert passignopnode5 isa nullable AAssignOp
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ABraReassignExpr = new ABraReassignExpr.init_abrareassignexpr(
+                                               pexprnode2,
+                                               listnode4,
+                                               passignopnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction1037
+private class ReduceAction496
 special 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 tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var tidnode3 = nodearraylist3
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tkwdonode5 = nodearraylist9
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var plabelnode4 = nodearraylist3
+                                       assert plabelnode4 isa nullable ALabel
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               plabelnode4
                                        )
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(101), node_list)
+       end
+init do end
+end
+private class ReduceAction497
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(101), node_list)
        end
 init do end
 end
-private class ReduceAction1038
+private class ReduceAction498
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist14 = p.pop
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -40036,109 +13673,75 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var tidnode3 = nodearraylist3
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist7
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode4 = nodearraylist6
                                        assert pexprnode4 isa nullable AExpr
-                                       var tkwdonode5 = nodearraylist9
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7 = nodearraylist11
-                                       assert pexprnode7 isa nullable AExpr
-                                       if pexprnode7 != null then
-                                               listnode8.add(pexprnode7)
-                                       end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var plabelnode9 = nodearraylist14
-                                       assert plabelnode9 isa nullable ALabel
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               tidnode3,
+                                       var pexprnode5 = nodearraylist8
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
                                                pexprnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode9
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(102), node_list)
        end
 init do end
 end
-private class ReduceAction1039
+private class ReduceAction499
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist15 = p.pop
-                                       var nodearraylist14 = p.pop
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var tidnode3 = nodearraylist3
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tkwdonode5 = nodearraylist9
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode9 = new Array[Object]
-                                       var pexprnode7 = nodearraylist11
-                                       assert pexprnode7 isa nullable AExpr
-                                       var listnode8 = nodearraylist12
-                                       assert listnode8 isa Array[Object]
-                                       if pexprnode7 != null then
-                                               listnode9.add(pexprnode7)
-                                       end
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-#                                      end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode9
+                                       var tkwloopnode2 = nodearraylist1
+                                       assert tkwloopnode2 isa nullable TKwloop
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var plabelnode4 = nodearraylist3
+                                       assert plabelnode4 isa nullable ALabel
+                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
+                                               tkwloopnode2,
+                                               pexprnode3,
+                                               plabelnode4
                                        )
-                                       var plabelnode10 = nodearraylist15
-                                       assert plabelnode10 isa nullable ALabel
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode10
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(103), node_list)
+       end
+init do end
+end
+private class ReduceAction500
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwloopnode2 = nodearraylist1
+                                       assert tkwloopnode2 isa nullable TKwloop
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
+                                               tkwloopnode2,
+                                               pexprnode3,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(103), node_list)
        end
 init do end
 end
-private class ReduceAction1040
+private class ReduceAction501
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -40146,34 +13749,60 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var tidnode3 = nodearraylist3
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tkwdonode5 = nodearraylist9
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var plabelnode6 = nodearraylist7
+                                       assert plabelnode6 isa nullable ALabel
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode6
                                        )
-                                       var plabelnode8 = nodearraylist12
-                                       assert plabelnode8 isa nullable ALabel
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode8
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(104), node_list)
+       end
+init do end
+end
+private class ReduceAction502
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(104), node_list)
        end
 init do end
 end
-private class ReduceAction1041
+private class ReduceAction503
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40197,26 +13826,24 @@ special ReduceAction
                                        assert pexprnode4 isa nullable AExpr
                                        var tkwdonode5 = nodearraylist9
                                        assert tkwdonode5 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
-                                       )
-                                       var plabelnode8 = nodearraylist11
-                                       assert plabelnode8 isa nullable ALabel
+                                       var pexprnode6 = nodearraylist10
+                                       assert pexprnode6 isa nullable AExpr
+                                       var plabelnode7 = nodearraylist11
+                                       assert plabelnode7 isa nullable ALabel
                                        var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
                                                tkwfornode2,
                                                tidnode3,
                                                pexprnode4,
                                                tkwdonode5,
                                                pexprnode6,
-                                               plabelnode8
+                                               plabelnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction1042
+private class ReduceAction504
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40250,11 +13877,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction1043
+private class ReduceAction505
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40276,11 +13903,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(101), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction1044
+private class ReduceAction506
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40305,11 +13932,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(101), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction1045
+private class ReduceAction507
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40318,11 +13945,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(107), node_list)
        end
 init do end
 end
-private class ReduceAction1046
+private class ReduceAction508
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40341,22 +13968,10 @@ special ReduceAction
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var listnode6 = nodearraylist6
                                        assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
+                                       listnode7 = concat(listnode7, listnode6)
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
@@ -40364,11 +13979,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(107), node_list)
        end
 init do end
 end
-private class ReduceAction1047
+private class ReduceAction509
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40384,22 +13999,10 @@ special ReduceAction
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var listnode6 = nodearraylist3
                                        assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
+                                       listnode7 = concat(listnode7, listnode6)
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
@@ -40407,11 +14010,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(107), node_list)
        end
 init do end
 end
-private class ReduceAction1048
+private class ReduceAction510
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40425,33 +14028,21 @@ special ReduceAction
                                        assert pexprnode2 isa nullable AExpr
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       listnode4 = concat(listnode4, listnode3)
                                        var listnode5 = nodearraylist3
                                        assert listnode5 isa Array[Object]
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
+                                       listnode6 = concat(listnode6, listnode5)
                                        var pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
                                                pexprnode2,
                                                listnode4,
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(107), node_list)
        end
 init do end
 end
-private class ReduceAction1049
+private class ReduceAction511
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40460,11 +14051,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(103), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction1050
+private class ReduceAction512
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40483,22 +14074,10 @@ special ReduceAction
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var listnode6 = nodearraylist6
                                        assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
+                                       listnode7 = concat(listnode7, listnode6)
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
@@ -40506,11 +14085,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(103), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction1051
+private class ReduceAction513
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40526,22 +14105,10 @@ special ReduceAction
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var listnode6 = nodearraylist3
                                        assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
+                                       listnode7 = concat(listnode7, listnode6)
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
@@ -40549,11 +14116,103 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(103), node_list)
+                                       p.push(p.go_to(108), node_list)
+       end
+init do end
+end
+private class ReduceAction514
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist2
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(109), node_list)
+       end
+init do end
+end
+private class ReduceAction515
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(109), node_list)
+       end
+init do end
+end
+private class ReduceAction516
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(109), node_list)
+       end
+init do end
+end
+private class ReduceAction517
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist2
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(110), node_list)
+       end
+init do end
+end
+private class ReduceAction518
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(110), node_list)
+       end
+init do end
+end
+private class ReduceAction519
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction1052
+private class ReduceAction520
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40562,11 +14221,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(104), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction1053
+private class ReduceAction521
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40585,22 +14244,10 @@ special ReduceAction
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var listnode6 = nodearraylist6
                                        assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
+                                       listnode7 = concat(listnode7, listnode6)
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
@@ -40608,11 +14255,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(104), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction1054
+private class ReduceAction522
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40628,22 +14275,10 @@ special ReduceAction
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var listnode6 = nodearraylist3
                                        assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
+                                       listnode7 = concat(listnode7, listnode6)
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
@@ -40651,11 +14286,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(104), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction1055
+private class ReduceAction523
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40664,11 +14299,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(112), node_list)
        end
 init do end
 end
-private class ReduceAction1056
+private class ReduceAction524
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40705,11 +14340,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(112), node_list)
        end
 init do end
 end
-private class ReduceAction1057
+private class ReduceAction525
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40718,11 +14353,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction1058
+private class ReduceAction526
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40740,11 +14375,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction1059
+private class ReduceAction527
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40762,11 +14397,34 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(113), node_list)
+       end
+init do end
+end
+private class ReduceAction528
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist5
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AOrElseExpr = new AOrElseExpr.init_aorelseexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction1060
+private class ReduceAction529
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40775,11 +14433,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(114), node_list)
        end
 init do end
 end
-private class ReduceAction1061
+private class ReduceAction530
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40796,11 +14454,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(114), node_list)
        end
 init do end
 end
-private class ReduceAction1062
+private class ReduceAction531
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40809,11 +14467,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(108), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction1063
+private class ReduceAction532
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40831,11 +14489,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(108), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction1064
+private class ReduceAction533
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40853,11 +14511,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(108), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction1065
+private class ReduceAction534
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40875,11 +14533,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(108), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction1066
+private class ReduceAction535
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40897,11 +14555,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(108), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction1067
+private class ReduceAction536
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40919,11 +14577,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(108), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction1068
+private class ReduceAction537
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40941,11 +14599,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(108), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction1069
+private class ReduceAction538
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40963,11 +14621,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(108), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction1070
+private class ReduceAction539
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -40985,11 +14643,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(108), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction1071
+private class ReduceAction540
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41007,11 +14665,11 @@ special ReduceAction
                                                ptypenode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(108), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction1072
+private class ReduceAction541
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41020,11 +14678,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(109), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction1073
+private class ReduceAction542
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41042,11 +14700,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(109), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction1074
+private class ReduceAction543
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41064,11 +14722,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(109), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction1075
+private class ReduceAction544
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41077,11 +14735,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(110), node_list)
+                                       p.push(p.go_to(117), node_list)
        end
 init do end
 end
-private class ReduceAction1076
+private class ReduceAction545
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41099,11 +14757,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(110), node_list)
+                                       p.push(p.go_to(117), node_list)
        end
 init do end
 end
-private class ReduceAction1077
+private class ReduceAction546
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41121,11 +14779,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(110), node_list)
+                                       p.push(p.go_to(117), node_list)
        end
 init do end
 end
-private class ReduceAction1078
+private class ReduceAction547
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41143,11 +14801,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(110), node_list)
+                                       p.push(p.go_to(117), node_list)
        end
 init do end
 end
-private class ReduceAction1079
+private class ReduceAction548
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41156,11 +14814,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction1080
+private class ReduceAction549
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41177,11 +14835,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction1081
+private class ReduceAction550
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41198,11 +14856,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction1082
+private class ReduceAction551
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41211,11 +14869,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(112), node_list)
+                                       p.push(p.go_to(119), node_list)
        end
 init do end
 end
-private class ReduceAction1083
+private class ReduceAction552
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41231,13 +14889,7 @@ special ReduceAction
                                        assert ptypenode3 isa nullable AType
                                        var listnode5 = nodearraylist4
                                        assert listnode5 isa Array[Object]
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
+                                       listnode6 = concat(listnode6, listnode5)
                                        var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
                                                tkwnewnode2,
                                                ptypenode3,
@@ -41245,11 +14897,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(112), node_list)
+                                       p.push(p.go_to(119), node_list)
        end
 init do end
 end
-private class ReduceAction1084
+private class ReduceAction553
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41271,11 +14923,11 @@ special ReduceAction
                                                tattridnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(112), node_list)
+                                       p.push(p.go_to(119), node_list)
        end
 init do end
 end
-private class ReduceAction1085
+private class ReduceAction554
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41294,11 +14946,11 @@ special ReduceAction
                                                tattridnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(112), node_list)
+                                       p.push(p.go_to(119), node_list)
        end
 init do end
 end
-private class ReduceAction1086
+private class ReduceAction555
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41316,11 +14968,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1087
+private class ReduceAction556
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41335,11 +14987,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1088
+private class ReduceAction557
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41357,13 +15009,7 @@ special ReduceAction
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
@@ -41371,11 +15017,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1089
+private class ReduceAction558
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41390,13 +15036,7 @@ special ReduceAction
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
@@ -41404,11 +15044,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1090
+private class ReduceAction559
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41420,24 +15060,18 @@ special ReduceAction
                                        assert tkwsupernode3 isa nullable TKwsuper
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
                                                null,
                                                tkwsupernode3,
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1091
+private class ReduceAction560
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41452,24 +15086,18 @@ special ReduceAction
                                        assert tkwsupernode3 isa nullable TKwsuper
                                        var listnode4 = nodearraylist3
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
                                                pqualifiednode2,
                                                tkwsupernode3,
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1092
+private class ReduceAction561
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41486,24 +15114,18 @@ special ReduceAction
                                        assert tkwinitnode3 isa nullable TKwinit
                                        var listnode4 = nodearraylist5
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
                                                pexprnode2,
                                                tkwinitnode3,
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1093
+private class ReduceAction562
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41517,24 +15139,18 @@ special ReduceAction
                                        assert tkwinitnode3 isa nullable TKwinit
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
                                                pexprnode2,
                                                tkwinitnode3,
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1094
+private class ReduceAction563
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41547,24 +15163,18 @@ special ReduceAction
                                        assert pexprnode2 isa nullable AExpr
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       listnode4 = concat(listnode4, listnode3)
                                        var pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
                                                pexprnode2,
                                                listnode4,
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1095
+private class ReduceAction564
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41585,13 +15195,7 @@ special ReduceAction
                                        assert tidnode4 isa nullable TId
                                        var listnode5 = nodearraylist7
                                        assert listnode5 isa Array[Object]
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
+                                       listnode6 = concat(listnode6, listnode5)
                                        var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
                                                tkwnewnode2,
                                                ptypenode3,
@@ -41599,11 +15203,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1096
+private class ReduceAction565
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41615,11 +15219,11 @@ special ReduceAction
                                                tkwselfnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1097
+private class ReduceAction566
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41631,11 +15235,11 @@ special ReduceAction
                                                tkwtruenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1098
+private class ReduceAction567
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41647,11 +15251,11 @@ special ReduceAction
                                                tkwfalsenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1099
+private class ReduceAction568
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41663,11 +15267,11 @@ special ReduceAction
                                                tkwnullnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1100
+private class ReduceAction569
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41679,11 +15283,11 @@ special ReduceAction
                                                tnumbernode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1101
+private class ReduceAction570
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41695,11 +15299,11 @@ special ReduceAction
                                                tfloatnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1102
+private class ReduceAction571
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41711,11 +15315,11 @@ special ReduceAction
                                                tcharnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1103
+private class ReduceAction572
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41727,11 +15331,11 @@ special ReduceAction
                                                tstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1104
+private class ReduceAction573
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41740,11 +15344,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1105
+private class ReduceAction574
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41771,11 +15375,11 @@ special ReduceAction
                                                ptypenode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1106
+private class ReduceAction575
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41807,11 +15411,11 @@ special ReduceAction
                                                tkwnullnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction1107
+private class ReduceAction576
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41820,11 +15424,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(114), node_list)
+                                       p.push(p.go_to(121), node_list)
        end
 init do end
 end
-private class ReduceAction1108
+private class ReduceAction577
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41843,22 +15447,10 @@ special ReduceAction
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var listnode6 = nodearraylist6
                                        assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
+                                       listnode7 = concat(listnode7, listnode6)
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
@@ -41866,11 +15458,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(114), node_list)
+                                       p.push(p.go_to(121), node_list)
        end
 init do end
 end
-private class ReduceAction1109
+private class ReduceAction578
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41886,22 +15478,10 @@ special ReduceAction
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var listnode6 = nodearraylist3
                                        assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
+                                       listnode7 = concat(listnode7, listnode6)
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
@@ -41909,11 +15489,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(114), node_list)
+                                       p.push(p.go_to(121), node_list)
        end
 init do end
 end
-private class ReduceAction1110
+private class ReduceAction579
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41922,11 +15502,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(122), node_list)
        end
 init do end
 end
-private class ReduceAction1111
+private class ReduceAction580
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41963,11 +15543,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(122), node_list)
        end
 init do end
 end
-private class ReduceAction1112
+private class ReduceAction581
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41976,11 +15556,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(123), node_list)
        end
 init do end
 end
-private class ReduceAction1113
+private class ReduceAction582
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -41998,11 +15578,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(123), node_list)
        end
 init do end
 end
-private class ReduceAction1114
+private class ReduceAction583
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42020,11 +15600,34 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(123), node_list)
+       end
+init do end
+end
+private class ReduceAction584
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist5
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AOrElseExpr = new AOrElseExpr.init_aorelseexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(123), node_list)
        end
 init do end
 end
-private class ReduceAction1115
+private class ReduceAction585
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42033,11 +15636,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(117), node_list)
+                                       p.push(p.go_to(124), node_list)
        end
 init do end
 end
-private class ReduceAction1116
+private class ReduceAction586
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42054,11 +15657,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(117), node_list)
+                                       p.push(p.go_to(124), node_list)
        end
 init do end
 end
-private class ReduceAction1117
+private class ReduceAction587
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42067,11 +15670,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(125), node_list)
        end
 init do end
 end
-private class ReduceAction1118
+private class ReduceAction588
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42089,11 +15692,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(125), node_list)
        end
 init do end
 end
-private class ReduceAction1119
+private class ReduceAction589
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42111,11 +15714,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(125), node_list)
        end
 init do end
 end
-private class ReduceAction1120
+private class ReduceAction590
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42133,11 +15736,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(125), node_list)
        end
 init do end
 end
-private class ReduceAction1121
+private class ReduceAction591
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42155,11 +15758,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(125), node_list)
        end
 init do end
 end
-private class ReduceAction1122
+private class ReduceAction592
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42177,11 +15780,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(125), node_list)
        end
 init do end
 end
-private class ReduceAction1123
+private class ReduceAction593
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42199,11 +15802,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(125), node_list)
        end
 init do end
 end
-private class ReduceAction1124
+private class ReduceAction594
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42221,11 +15824,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(125), node_list)
        end
 init do end
 end
-private class ReduceAction1125
+private class ReduceAction595
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42243,11 +15846,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(125), node_list)
        end
 init do end
 end
-private class ReduceAction1126
+private class ReduceAction596
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42265,11 +15868,11 @@ special ReduceAction
                                                ptypenode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(125), node_list)
        end
 init do end
 end
-private class ReduceAction1127
+private class ReduceAction597
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42278,11 +15881,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(119), node_list)
+                                       p.push(p.go_to(126), node_list)
        end
 init do end
 end
-private class ReduceAction1128
+private class ReduceAction598
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42300,11 +15903,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(119), node_list)
+                                       p.push(p.go_to(126), node_list)
        end
 init do end
 end
-private class ReduceAction1129
+private class ReduceAction599
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42322,11 +15925,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(119), node_list)
+                                       p.push(p.go_to(126), node_list)
        end
 init do end
 end
-private class ReduceAction1130
+private class ReduceAction600
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42335,11 +15938,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(120), node_list)
+                                       p.push(p.go_to(127), node_list)
        end
 init do end
 end
-private class ReduceAction1131
+private class ReduceAction601
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42357,11 +15960,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(120), node_list)
+                                       p.push(p.go_to(127), node_list)
        end
 init do end
 end
-private class ReduceAction1132
+private class ReduceAction602
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42379,11 +15982,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(120), node_list)
+                                       p.push(p.go_to(127), node_list)
        end
 init do end
 end
-private class ReduceAction1133
+private class ReduceAction603
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42401,11 +16004,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(120), node_list)
+                                       p.push(p.go_to(127), node_list)
        end
 init do end
 end
-private class ReduceAction1134
+private class ReduceAction604
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42414,11 +16017,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(121), node_list)
+                                       p.push(p.go_to(128), node_list)
        end
 init do end
 end
-private class ReduceAction1135
+private class ReduceAction605
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42435,11 +16038,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(121), node_list)
+                                       p.push(p.go_to(128), node_list)
        end
 init do end
 end
-private class ReduceAction1136
+private class ReduceAction606
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42456,11 +16059,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(121), node_list)
+                                       p.push(p.go_to(128), node_list)
        end
 init do end
 end
-private class ReduceAction1137
+private class ReduceAction607
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42469,11 +16072,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(122), node_list)
+                                       p.push(p.go_to(129), node_list)
        end
 init do end
 end
-private class ReduceAction1138
+private class ReduceAction608
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42489,13 +16092,7 @@ special ReduceAction
                                        assert ptypenode3 isa nullable AType
                                        var listnode5 = nodearraylist4
                                        assert listnode5 isa Array[Object]
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
+                                       listnode6 = concat(listnode6, listnode5)
                                        var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
                                                tkwnewnode2,
                                                ptypenode3,
@@ -42503,11 +16100,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(122), node_list)
+                                       p.push(p.go_to(129), node_list)
        end
 init do end
 end
-private class ReduceAction1139
+private class ReduceAction609
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42527,11 +16124,11 @@ special ReduceAction
                                                tattridnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(122), node_list)
+                                       p.push(p.go_to(129), node_list)
        end
 init do end
 end
-private class ReduceAction1140
+private class ReduceAction610
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42547,11 +16144,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction1141
+private class ReduceAction611
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42567,13 +16164,7 @@ special ReduceAction
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist3
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
@@ -42581,11 +16172,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction1142
+private class ReduceAction612
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42597,24 +16188,18 @@ special ReduceAction
                                        assert tkwsupernode3 isa nullable TKwsuper
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
                                                null,
                                                tkwsupernode3,
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction1143
+private class ReduceAction613
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42629,24 +16214,18 @@ special ReduceAction
                                        assert tkwsupernode3 isa nullable TKwsuper
                                        var listnode4 = nodearraylist3
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
                                                pqualifiednode2,
                                                tkwsupernode3,
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction1144
+private class ReduceAction614
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42661,24 +16240,18 @@ special ReduceAction
                                        assert tkwinitnode3 isa nullable TKwinit
                                        var listnode4 = nodearraylist3
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
                                                pexprnode2,
                                                tkwinitnode3,
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction1145
+private class ReduceAction615
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42699,13 +16272,7 @@ special ReduceAction
                                        assert tidnode4 isa nullable TId
                                        var listnode5 = nodearraylist7
                                        assert listnode5 isa Array[Object]
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
+                                       listnode6 = concat(listnode6, listnode5)
                                        var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
                                                tkwnewnode2,
                                                ptypenode3,
@@ -42713,11 +16280,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction1146
+private class ReduceAction616
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42729,11 +16296,11 @@ special ReduceAction
                                                tkwselfnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction1147
+private class ReduceAction617
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42745,11 +16312,11 @@ special ReduceAction
                                                tkwtruenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction1148
+private class ReduceAction618
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42761,11 +16328,11 @@ special ReduceAction
                                                tkwfalsenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction1149
+private class ReduceAction619
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42777,11 +16344,11 @@ special ReduceAction
                                                tkwnullnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction1150
+private class ReduceAction620
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42793,11 +16360,11 @@ special ReduceAction
                                                tnumbernode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction1151
+private class ReduceAction621
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42809,11 +16376,11 @@ special ReduceAction
                                                tfloatnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction1152
+private class ReduceAction622
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42825,11 +16392,11 @@ special ReduceAction
                                                tcharnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction1153
+private class ReduceAction623
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42841,11 +16408,11 @@ special ReduceAction
                                                tstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction1154
+private class ReduceAction624
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42854,11 +16421,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction1155
+private class ReduceAction625
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42885,11 +16452,11 @@ special ReduceAction
                                                ptypenode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction1156
+private class ReduceAction626
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42921,11 +16488,11 @@ special ReduceAction
                                                tkwnullnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction1157
+private class ReduceAction627
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42936,11 +16503,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(124), node_list)
+                                       p.push(p.go_to(131), node_list)
        end
 init do end
 end
-private class ReduceAction1158
+private class ReduceAction628
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42948,11 +16515,11 @@ special ReduceAction
                                        var pexprnode1: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(124), node_list)
+                                       p.push(p.go_to(131), node_list)
        end
 init do end
 end
-private class ReduceAction1159
+private class ReduceAction629
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42961,11 +16528,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(125), node_list)
+                                       p.push(p.go_to(132), node_list)
        end
 init do end
 end
-private class ReduceAction1160
+private class ReduceAction630
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -42984,22 +16551,10 @@ special ReduceAction
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var listnode6 = nodearraylist6
                                        assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
+                                       listnode7 = concat(listnode7, listnode6)
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
@@ -43007,11 +16562,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(125), node_list)
+                                       p.push(p.go_to(132), node_list)
        end
 init do end
 end
-private class ReduceAction1161
+private class ReduceAction631
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43027,22 +16582,10 @@ special ReduceAction
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var listnode6 = nodearraylist3
                                        assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
+                                       listnode7 = concat(listnode7, listnode6)
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
@@ -43050,11 +16593,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(125), node_list)
+                                       p.push(p.go_to(132), node_list)
        end
 init do end
 end
-private class ReduceAction1162
+private class ReduceAction632
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43063,11 +16606,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(126), node_list)
+                                       p.push(p.go_to(133), node_list)
        end
 init do end
 end
-private class ReduceAction1163
+private class ReduceAction633
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43086,22 +16629,10 @@ special ReduceAction
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var listnode6 = nodearraylist6
                                        assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
+                                       listnode7 = concat(listnode7, listnode6)
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
@@ -43109,11 +16640,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(126), node_list)
+                                       p.push(p.go_to(133), node_list)
        end
 init do end
 end
-private class ReduceAction1164
+private class ReduceAction634
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43129,22 +16660,10 @@ special ReduceAction
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
+                                       listnode5 = concat(listnode5, listnode4)
                                        var listnode6 = nodearraylist3
                                        assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
+                                       listnode7 = concat(listnode7, listnode6)
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
@@ -43152,11 +16671,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(126), node_list)
+                                       p.push(p.go_to(133), node_list)
        end
 init do end
 end
-private class ReduceAction1165
+private class ReduceAction635
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43169,11 +16688,11 @@ special ReduceAction
                                                listnode2.add(pimportnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(127), node_list)
+                                       p.push(p.go_to(134), node_list)
        end
 init do end
 end
-private class ReduceAction1166
+private class ReduceAction636
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43185,22 +16704,16 @@ special ReduceAction
                                        assert listnode1 isa Array[Object]
                                        var pimportnode2 = nodearraylist2
                                        assert pimportnode2 isa nullable AImport
-#                                      if listnode1 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode1
-                                               else
-                                                       listnode3.append(listnode1)
-                                               end
-#                                      end
+                                       listnode3 = concat(listnode3, listnode1)
                                        if pimportnode2 != null then
                                                listnode3.add(pimportnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(127), node_list)
+                                       p.push(p.go_to(134), node_list)
        end
 init do end
 end
-private class ReduceAction1167
+private class ReduceAction637
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43213,11 +16726,11 @@ special ReduceAction
                                                listnode2.add(pclassdefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(128), node_list)
+                                       p.push(p.go_to(135), node_list)
        end
 init do end
 end
-private class ReduceAction1168
+private class ReduceAction638
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43229,39 +16742,33 @@ special ReduceAction
                                        assert listnode1 isa Array[Object]
                                        var pclassdefnode2 = nodearraylist2
                                        assert pclassdefnode2 isa nullable AClassdef
-#                                      if listnode1 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode1
-                                               else
-                                                       listnode3.append(listnode1)
-                                               end
-#                                      end
+                                       listnode3 = concat(listnode3, listnode1)
                                        if pclassdefnode2 != null then
                                                listnode3.add(pclassdefnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(128), node_list)
+                                       p.push(p.go_to(135), node_list)
        end
 init do end
 end
-private class ReduceAction1169
+private class ReduceAction639
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
-                                       var psuperclassnode1 = nodearraylist1
-                                       assert psuperclassnode1 isa nullable ASuperclass
-                                       if psuperclassnode1 != null then
-                                               listnode2.add(psuperclassnode1)
+                                       var ppropdefnode1 = nodearraylist1
+                                       assert ppropdefnode1 isa nullable APropdef
+                                       if ppropdefnode1 != null then
+                                               listnode2.add(ppropdefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(129), node_list)
+                                       p.push(p.go_to(136), node_list)
        end
 init do end
 end
-private class ReduceAction1170
+private class ReduceAction640
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43271,41 +16778,35 @@ special ReduceAction
                                        var listnode3 = new Array[Object]
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
-                                       var psuperclassnode2 = nodearraylist2
-                                       assert psuperclassnode2 isa nullable ASuperclass
-#                                      if listnode1 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode1
-                                               else
-                                                       listnode3.append(listnode1)
-                                               end
-#                                      end
-                                       if psuperclassnode2 != null then
-                                               listnode3.add(psuperclassnode2)
+                                       var ppropdefnode2 = nodearraylist2
+                                       assert ppropdefnode2 isa nullable APropdef
+                                       listnode3 = concat(listnode3, listnode1)
+                                       if ppropdefnode2 != null then
+                                               listnode3.add(ppropdefnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(129), node_list)
+                                       p.push(p.go_to(136), node_list)
        end
 init do end
 end
-private class ReduceAction1171
+private class ReduceAction641
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
-                                       var pformaldefnode1 = nodearraylist1
-                                       assert pformaldefnode1 isa nullable AFormaldef
-                                       if pformaldefnode1 != null then
-                                               listnode2.add(pformaldefnode1)
+                                       var psuperclassnode1 = nodearraylist1
+                                       assert psuperclassnode1 isa nullable ASuperclass
+                                       if psuperclassnode1 != null then
+                                               listnode2.add(psuperclassnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(130), node_list)
+                                       p.push(p.go_to(137), node_list)
        end
 init do end
 end
-private class ReduceAction1172
+private class ReduceAction642
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43315,24 +16816,18 @@ special ReduceAction
                                        var listnode3 = new Array[Object]
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
-                                       var pformaldefnode2 = nodearraylist2
-                                       assert pformaldefnode2 isa nullable AFormaldef
-#                                      if listnode1 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode1
-                                               else
-                                                       listnode3.append(listnode1)
-                                               end
-#                                      end
-                                       if pformaldefnode2 != null then
-                                               listnode3.add(pformaldefnode2)
+                                       var psuperclassnode2 = nodearraylist2
+                                       assert psuperclassnode2 isa nullable ASuperclass
+                                       listnode3 = concat(listnode3, listnode1)
+                                       if psuperclassnode2 != null then
+                                               listnode3.add(psuperclassnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(130), node_list)
+                                       p.push(p.go_to(137), node_list)
        end
 init do end
 end
-private class ReduceAction1173
+private class ReduceAction643
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43345,11 +16840,11 @@ special ReduceAction
                                                listnode2.add(ppropdefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(131), node_list)
+                                       p.push(p.go_to(138), node_list)
        end
 init do end
 end
-private class ReduceAction1174
+private class ReduceAction644
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43361,22 +16856,54 @@ special ReduceAction
                                        assert listnode1 isa Array[Object]
                                        var ppropdefnode2 = nodearraylist2
                                        assert ppropdefnode2 isa nullable APropdef
-#                                      if listnode1 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode1
-                                               else
-                                                       listnode3.append(listnode1)
-                                               end
-#                                      end
+                                       listnode3 = concat(listnode3, listnode1)
                                        if ppropdefnode2 != null then
                                                listnode3.add(ppropdefnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(131), node_list)
+                                       p.push(p.go_to(138), node_list)
+       end
+init do end
+end
+private class ReduceAction645
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pformaldefnode1 = nodearraylist1
+                                       assert pformaldefnode1 isa nullable AFormaldef
+                                       if pformaldefnode1 != null then
+                                               listnode2.add(pformaldefnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(139), node_list)
+       end
+init do end
+end
+private class ReduceAction646
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode1 = nodearraylist1
+                                       assert listnode1 isa Array[Object]
+                                       var pformaldefnode2 = nodearraylist2
+                                       assert pformaldefnode2 isa nullable AFormaldef
+                                       listnode3 = concat(listnode3, listnode1)
+                                       if pformaldefnode2 != null then
+                                               listnode3.add(pformaldefnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(139), node_list)
        end
 init do end
 end
-private class ReduceAction1175
+private class ReduceAction647
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43389,11 +16916,11 @@ special ReduceAction
                                                listnode2.add(pparamnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(132), node_list)
+                                       p.push(p.go_to(140), node_list)
        end
 init do end
 end
-private class ReduceAction1176
+private class ReduceAction648
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43405,22 +16932,16 @@ special ReduceAction
                                        assert listnode1 isa Array[Object]
                                        var pparamnode2 = nodearraylist2
                                        assert pparamnode2 isa nullable AParam
-#                                      if listnode1 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode1
-                                               else
-                                                       listnode3.append(listnode1)
-                                               end
-#                                      end
+                                       listnode3 = concat(listnode3, listnode1)
                                        if pparamnode2 != null then
                                                listnode3.add(pparamnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(132), node_list)
+                                       p.push(p.go_to(140), node_list)
        end
 init do end
 end
-private class ReduceAction1177
+private class ReduceAction649
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43433,11 +16954,11 @@ special ReduceAction
                                                listnode2.add(pclosuredeclnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(133), node_list)
+                                       p.push(p.go_to(141), node_list)
        end
 init do end
 end
-private class ReduceAction1178
+private class ReduceAction650
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43449,22 +16970,16 @@ special ReduceAction
                                        assert listnode1 isa Array[Object]
                                        var pclosuredeclnode2 = nodearraylist2
                                        assert pclosuredeclnode2 isa nullable AClosureDecl
-#                                      if listnode1 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode1
-                                               else
-                                                       listnode3.append(listnode1)
-                                               end
-#                                      end
+                                       listnode3 = concat(listnode3, listnode1)
                                        if pclosuredeclnode2 != null then
                                                listnode3.add(pclosuredeclnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(133), node_list)
+                                       p.push(p.go_to(141), node_list)
        end
 init do end
 end
-private class ReduceAction1179
+private class ReduceAction651
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43477,11 +16992,11 @@ special ReduceAction
                                                listnode2.add(ptypenode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(134), node_list)
+                                       p.push(p.go_to(142), node_list)
        end
 init do end
 end
-private class ReduceAction1180
+private class ReduceAction652
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43493,22 +17008,16 @@ special ReduceAction
                                        assert listnode1 isa Array[Object]
                                        var ptypenode2 = nodearraylist2
                                        assert ptypenode2 isa nullable AType
-#                                      if listnode1 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode1
-                                               else
-                                                       listnode3.append(listnode1)
-                                               end
-#                                      end
+                                       listnode3 = concat(listnode3, listnode1)
                                        if ptypenode2 != null then
                                                listnode3.add(ptypenode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(134), node_list)
+                                       p.push(p.go_to(142), node_list)
        end
 init do end
 end
-private class ReduceAction1181
+private class ReduceAction653
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43521,11 +17030,11 @@ special ReduceAction
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(135), node_list)
+                                       p.push(p.go_to(143), node_list)
        end
 init do end
 end
-private class ReduceAction1182
+private class ReduceAction654
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43537,22 +17046,16 @@ special ReduceAction
                                        assert listnode1 isa Array[Object]
                                        var pexprnode2 = nodearraylist2
                                        assert pexprnode2 isa nullable AExpr
-#                                      if listnode1 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode1
-                                               else
-                                                       listnode3.append(listnode1)
-                                               end
-#                                      end
+                                       listnode3 = concat(listnode3, listnode1)
                                        if pexprnode2 != null then
                                                listnode3.add(pexprnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(135), node_list)
+                                       p.push(p.go_to(143), node_list)
        end
 init do end
 end
-private class ReduceAction1183
+private class ReduceAction655
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43561,19 +17064,13 @@ special ReduceAction
                                        var listnode2 = new Array[Object]
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
-#                                      if listnode1 != null then
-                                               if listnode2.is_empty then
-                                                       listnode2 = listnode1
-                                               else
-                                                       listnode2.append(listnode1)
-                                               end
-#                                      end
+                                       listnode2 = concat(listnode2, listnode1)
                                        node_list = listnode2
-                                       p.push(p.go_to(136), node_list)
+                                       p.push(p.go_to(144), node_list)
        end
 init do end
 end
-private class ReduceAction1184
+private class ReduceAction656
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43585,26 +17082,14 @@ special ReduceAction
                                        assert listnode1 isa Array[Object]
                                        var listnode2 = nodearraylist2
                                        assert listnode2 isa Array[Object]
-#                                      if listnode1 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode1
-                                               else
-                                                       listnode3.append(listnode1)
-                                               end
-#                                      end
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
+                                       listnode3 = concat(listnode3, listnode1)
+                                       listnode3 = concat(listnode3, listnode2)
                                        node_list = listnode3
-                                       p.push(p.go_to(136), node_list)
+                                       p.push(p.go_to(144), node_list)
        end
 init do end
 end
-private class ReduceAction1185
+private class ReduceAction657
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43617,11 +17102,11 @@ special ReduceAction
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(137), node_list)
+                                       p.push(p.go_to(145), node_list)
        end
 init do end
 end
-private class ReduceAction1186
+private class ReduceAction658
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43633,22 +17118,16 @@ special ReduceAction
                                        assert listnode1 isa Array[Object]
                                        var pexprnode2 = nodearraylist2
                                        assert pexprnode2 isa nullable AExpr
-#                                      if listnode1 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode1
-                                               else
-                                                       listnode3.append(listnode1)
-                                               end
-#                                      end
+                                       listnode3 = concat(listnode3, listnode1)
                                        if pexprnode2 != null then
                                                listnode3.add(pexprnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(137), node_list)
+                                       p.push(p.go_to(145), node_list)
        end
 init do end
 end
-private class ReduceAction1187
+private class ReduceAction659
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43661,11 +17140,11 @@ special ReduceAction
                                                listnode2.add(tidnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(138), node_list)
+                                       p.push(p.go_to(146), node_list)
        end
 init do end
 end
-private class ReduceAction1188
+private class ReduceAction660
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43677,22 +17156,16 @@ special ReduceAction
                                        assert listnode1 isa Array[Object]
                                        var tidnode2 = nodearraylist2
                                        assert tidnode2 isa nullable TId
-#                                      if listnode1 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode1
-                                               else
-                                                       listnode3.append(listnode1)
-                                               end
-#                                      end
+                                       listnode3 = concat(listnode3, listnode1)
                                        if tidnode2 != null then
                                                listnode3.add(tidnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(138), node_list)
+                                       p.push(p.go_to(146), node_list)
        end
 init do end
 end
-private class ReduceAction1189
+private class ReduceAction661
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43705,11 +17178,11 @@ special ReduceAction
                                                listnode2.add(tcommentnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(139), node_list)
+                                       p.push(p.go_to(147), node_list)
        end
 init do end
 end
-private class ReduceAction1190
+private class ReduceAction662
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43721,22 +17194,16 @@ special ReduceAction
                                        assert listnode1 isa Array[Object]
                                        var tcommentnode2 = nodearraylist2
                                        assert tcommentnode2 isa nullable TComment
-#                                      if listnode1 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode1
-                                               else
-                                                       listnode3.append(listnode1)
-                                               end
-#                                      end
+                                       listnode3 = concat(listnode3, listnode1)
                                        if tcommentnode2 != null then
                                                listnode3.add(tcommentnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(139), node_list)
+                                       p.push(p.go_to(147), node_list)
        end
 init do end
 end
-private class ReduceAction1191
+private class ReduceAction663
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43749,11 +17216,11 @@ special ReduceAction
                                                listnode2.add(teolnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(140), node_list)
+                                       p.push(p.go_to(148), node_list)
        end
 init do end
 end
-private class ReduceAction1192
+private class ReduceAction664
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -43765,62 +17232,12 @@ special ReduceAction
                                        assert listnode1 isa Array[Object]
                                        var teolnode2 = nodearraylist2
                                        assert teolnode2 isa nullable TEol
-#                                      if listnode1 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode1
-                                               else
-                                                       listnode3.append(listnode1)
-                                               end
-#                                      end
+                                       listnode3 = concat(listnode3, listnode1)
                                        if teolnode2 != null then
                                                listnode3.add(teolnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(140), node_list)
-       end
-init do end
-end
-private class ReduceAction1193
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var ppropdefnode1 = nodearraylist1
-                                       assert ppropdefnode1 isa nullable APropdef
-                                       if ppropdefnode1 != null then
-                                               listnode2.add(ppropdefnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(141), node_list)
-       end
-init do end
-end
-private class ReduceAction1194
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode1 = nodearraylist1
-                                       assert listnode1 isa Array[Object]
-                                       var ppropdefnode2 = nodearraylist2
-                                       assert ppropdefnode2 isa nullable APropdef
-#                                      if listnode1 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode1
-                                               else
-                                                       listnode3.append(listnode1)
-                                               end
-#                                      end
-                                       if ppropdefnode2 != null then
-                                               listnode3.add(ppropdefnode2)
-                                       end
-                                       node_list = listnode3
-                                       p.push(p.go_to(141), node_list)
+                                       p.push(p.go_to(148), node_list)
        end
 init do end
 end