Merge branch 'pu/parser_tables_in_c' into wip
[nit.git] / src / parser / parser.nit
index 62b5ccc..9d2ae82 100644 (file)
@@ -3,7 +3,6 @@
 package parser
 
 intrude import parser_prod
-intrude import parser_tables
 
 # State of the parser automata as stored in the parser stack.
 private class State
@@ -21,7 +20,7 @@ private class State
 end
 
 class Parser
-special ParserTable
+special TablesCapable
        # Associated lexer
        var _lexer: Lexer
 
@@ -37,8 +36,6 @@ special ParserTable
                _lexer = lexer
                _stack = new Array[State]
                _stack_pos = -1
-               build_goto_table
-               build_action_table
                build_reduce_table
        end
 
@@ -46,24 +43,24 @@ special ParserTable
        private fun go_to(index: Int): Int
        do
                var state = state
-               var table = _goto_table[index]
                var low = 1
-               var high = table.length/2 - 1
+               var high = parser_goto(index, 0) - 1
 
                while low <= high do
                        var middle = (low + high) / 2
-                       var subindex = middle * 2
+                       var subindex = middle * 2 + 1 # +1 because parser_goto(index, 0) is the length
 
-                       if state < table[subindex] then
+                       var goal = parser_goto(index, subindex)
+                       if state < goal then
                                high = middle - 1
-                       else if state > table[subindex] then
+                       else if state > goal then
                                low = middle + 1
                        else
-                               return table[subindex + 1]
+                               return parser_goto(index, subindex+1)
                        end
                end
 
-               return table[1] # Default value
+               return parser_goto(index, 2) # Default value
        end
 
        # Push someting in the state stack
@@ -107,24 +104,24 @@ special ParserTable
                        end
 
                        var index = token.parser_index
-                       var table = _action_table[state]
-                       var action_type = table[1]
-                       var action_value = table[2]
+                       var action_type = parser_action(state, 2)
+                       var action_value = parser_action(state, 3)
 
                        var low = 1
-                       var high = table.length/3 - 1
+                       var high = parser_action(state, 0) - 1
 
                        while low <= high do
                                var middle = (low + high) / 2
-                               var subindex = middle * 3
+                               var subindex = middle * 3 + 1 # +1 because parser_action(state, 0) is the length
 
-                               if index < table[subindex] then
+                               var goal = parser_action(state, subindex)
+                               if index < goal then
                                        high = middle - 1
-                               else if index > table[subindex] then
+                               else if index > goal then
                                        low = middle + 1
                                else
-                                       action_type = table[subindex + 1]
-                                       action_value = table[subindex + 2]
+                                       action_type = parser_action(state, subindex+1)
+                                       action_value = parser_action(state, subindex+2)
                                        high = low -1 # break
                                end
                        end
@@ -155,671 +152,671 @@ special ParserTable
        private fun build_reduce_table
        do
                _reduce_table = new Array[ReduceAction].with_items(
-                       new ReduceAction0,
-                       new ReduceAction1,
-                       new ReduceAction2,
-                       new ReduceAction3,
-                       new ReduceAction4,
-                       new ReduceAction5,
-                       new ReduceAction6,
-                       new ReduceAction7,
-                       new ReduceAction8,
-                       new ReduceAction9,
-                       new ReduceAction10,
-                       new ReduceAction11,
-                       new ReduceAction12,
-                       new ReduceAction13,
-                       new ReduceAction14,
-                       new ReduceAction15,
-                       new ReduceAction16,
-                       new ReduceAction17,
-                       new ReduceAction18,
-                       new ReduceAction19,
-                       new ReduceAction20,
-                       new ReduceAction21,
-                       new ReduceAction22,
-                       new ReduceAction23,
-                       new ReduceAction24,
-                       new ReduceAction25,
-                       new ReduceAction26,
-                       new ReduceAction27,
-                       new ReduceAction28,
-                       new ReduceAction29,
-                       new ReduceAction30,
-                       new ReduceAction31,
-                       new ReduceAction32,
-                       new ReduceAction33,
-                       new ReduceAction34,
-                       new ReduceAction35,
-                       new ReduceAction36,
-                       new ReduceAction37,
-                       new ReduceAction38,
-                       new ReduceAction39,
-                       new ReduceAction40,
-                       new ReduceAction41,
-                       new ReduceAction42,
-                       new ReduceAction43,
-                       new ReduceAction44,
-                       new ReduceAction45,
-                       new ReduceAction46,
-                       new ReduceAction47,
-                       new ReduceAction48,
-                       new ReduceAction49,
-                       new ReduceAction50,
-                       new ReduceAction51,
-                       new ReduceAction52,
-                       new ReduceAction53,
-                       new ReduceAction54,
-                       new ReduceAction55,
-                       new ReduceAction56,
-                       new ReduceAction57,
-                       new ReduceAction58,
-                       new ReduceAction59,
-                       new ReduceAction60,
-                       new ReduceAction61,
-                       new ReduceAction62,
-                       new ReduceAction63,
-                       new ReduceAction64,
-                       new ReduceAction65,
-                       new ReduceAction66,
-                       new ReduceAction67,
-                       new ReduceAction68,
-                       new ReduceAction69,
-                       new ReduceAction70,
-                       new ReduceAction71,
-                       new ReduceAction72,
-                       new ReduceAction73,
-                       new ReduceAction74,
-                       new ReduceAction75,
-                       new ReduceAction76,
-                       new ReduceAction77,
-                       new ReduceAction78,
-                       new ReduceAction79,
-                       new ReduceAction80,
-                       new ReduceAction81,
-                       new ReduceAction82,
-                       new ReduceAction83,
-                       new ReduceAction84,
-                       new ReduceAction85,
-                       new ReduceAction86,
-                       new ReduceAction87,
-                       new ReduceAction88,
-                       new ReduceAction89,
-                       new ReduceAction90,
-                       new ReduceAction91,
-                       new ReduceAction92,
-                       new ReduceAction93,
-                       new ReduceAction94,
-                       new ReduceAction95,
-                       new ReduceAction96,
-                       new ReduceAction97,
-                       new ReduceAction98,
-                       new ReduceAction99,
-                       new ReduceAction100,
-                       new ReduceAction101,
-                       new ReduceAction102,
-                       new ReduceAction103,
-                       new ReduceAction104,
-                       new ReduceAction105,
-                       new ReduceAction106,
-                       new ReduceAction107,
-                       new ReduceAction108,
-                       new ReduceAction109,
-                       new ReduceAction110,
-                       new ReduceAction111,
-                       new ReduceAction112,
-                       new ReduceAction113,
-                       new ReduceAction114,
-                       new ReduceAction115,
-                       new ReduceAction116,
-                       new ReduceAction117,
-                       new ReduceAction118,
-                       new ReduceAction119,
-                       new ReduceAction120,
-                       new ReduceAction121,
-                       new ReduceAction122,
-                       new ReduceAction123,
-                       new ReduceAction124,
-                       new ReduceAction125,
-                       new ReduceAction126,
-                       new ReduceAction127,
-                       new ReduceAction128,
-                       new ReduceAction129,
-                       new ReduceAction130,
-                       new ReduceAction131,
-                       new ReduceAction132,
-                       new ReduceAction133,
-                       new ReduceAction134,
-                       new ReduceAction135,
-                       new ReduceAction136,
-                       new ReduceAction137,
-                       new ReduceAction138,
-                       new ReduceAction139,
-                       new ReduceAction140,
-                       new ReduceAction141,
-                       new ReduceAction142,
-                       new ReduceAction143,
-                       new ReduceAction144,
-                       new ReduceAction145,
-                       new ReduceAction146,
-                       new ReduceAction147,
-                       new ReduceAction148,
-                       new ReduceAction149,
-                       new ReduceAction150,
-                       new ReduceAction151,
-                       new ReduceAction152,
-                       new ReduceAction153,
-                       new ReduceAction154,
-                       new ReduceAction155,
-                       new ReduceAction156,
-                       new ReduceAction157,
-                       new ReduceAction158,
-                       new ReduceAction159,
-                       new ReduceAction160,
-                       new ReduceAction161,
-                       new ReduceAction162,
-                       new ReduceAction163,
-                       new ReduceAction164,
-                       new ReduceAction165,
-                       new ReduceAction166,
-                       new ReduceAction167,
-                       new ReduceAction168,
-                       new ReduceAction169,
-                       new ReduceAction170,
-                       new ReduceAction171,
-                       new ReduceAction172,
-                       new ReduceAction173,
-                       new ReduceAction174,
-                       new ReduceAction175,
-                       new ReduceAction176,
-                       new ReduceAction177,
-                       new ReduceAction178,
-                       new ReduceAction179,
-                       new ReduceAction180,
-                       new ReduceAction181,
-                       new ReduceAction182,
-                       new ReduceAction183,
-                       new ReduceAction184,
-                       new ReduceAction185,
-                       new ReduceAction186,
-                       new ReduceAction187,
-                       new ReduceAction188,
-                       new ReduceAction189,
-                       new ReduceAction190,
-                       new ReduceAction191,
-                       new ReduceAction192,
-                       new ReduceAction193,
-                       new ReduceAction194,
-                       new ReduceAction195,
-                       new ReduceAction196,
-                       new ReduceAction197,
-                       new ReduceAction198,
-                       new ReduceAction199,
-                       new ReduceAction200,
-                       new ReduceAction201,
-                       new ReduceAction202,
-                       new ReduceAction203,
-                       new ReduceAction204,
-                       new ReduceAction205,
-                       new ReduceAction206,
-                       new ReduceAction207,
-                       new ReduceAction208,
-                       new ReduceAction209,
-                       new ReduceAction210,
-                       new ReduceAction211,
-                       new ReduceAction212,
-                       new ReduceAction213,
-                       new ReduceAction214,
-                       new ReduceAction215,
-                       new ReduceAction216,
-                       new ReduceAction217,
-                       new ReduceAction218,
-                       new ReduceAction219,
-                       new ReduceAction220,
-                       new ReduceAction221,
-                       new ReduceAction222,
-                       new ReduceAction223,
-                       new ReduceAction224,
-                       new ReduceAction225,
-                       new ReduceAction226,
-                       new ReduceAction227,
-                       new ReduceAction228,
-                       new ReduceAction229,
-                       new ReduceAction230,
-                       new ReduceAction231,
-                       new ReduceAction232,
-                       new ReduceAction233,
-                       new ReduceAction234,
-                       new ReduceAction235,
-                       new ReduceAction236,
-                       new ReduceAction237,
-                       new ReduceAction238,
-                       new ReduceAction239,
-                       new ReduceAction240,
-                       new ReduceAction241,
-                       new ReduceAction242,
-                       new ReduceAction243,
-                       new ReduceAction244,
-                       new ReduceAction245,
-                       new ReduceAction246,
-                       new ReduceAction247,
-                       new ReduceAction248,
-                       new ReduceAction249,
-                       new ReduceAction250,
-                       new ReduceAction251,
-                       new ReduceAction252,
-                       new ReduceAction253,
-                       new ReduceAction254,
-                       new ReduceAction255,
-                       new ReduceAction256,
-                       new ReduceAction257,
-                       new ReduceAction258,
-                       new ReduceAction259,
-                       new ReduceAction260,
-                       new ReduceAction261,
-                       new ReduceAction262,
-                       new ReduceAction263,
-                       new ReduceAction264,
-                       new ReduceAction265,
-                       new ReduceAction266,
-                       new ReduceAction267,
-                       new ReduceAction268,
-                       new ReduceAction269,
-                       new ReduceAction270,
-                       new ReduceAction271,
-                       new ReduceAction272,
-                       new ReduceAction273,
-                       new ReduceAction274,
-                       new ReduceAction275,
-                       new ReduceAction276,
-                       new ReduceAction277,
-                       new ReduceAction278,
-                       new ReduceAction279,
-                       new ReduceAction280,
-                       new ReduceAction281,
-                       new ReduceAction282,
-                       new ReduceAction283,
-                       new ReduceAction284,
-                       new ReduceAction285,
-                       new ReduceAction286,
-                       new ReduceAction287,
-                       new ReduceAction288,
-                       new ReduceAction289,
-                       new ReduceAction290,
-                       new ReduceAction291,
-                       new ReduceAction292,
-                       new ReduceAction293,
-                       new ReduceAction294,
-                       new ReduceAction295,
-                       new ReduceAction296,
-                       new ReduceAction297,
-                       new ReduceAction298,
-                       new ReduceAction299,
-                       new ReduceAction300,
-                       new ReduceAction301,
-                       new ReduceAction302,
-                       new ReduceAction303,
-                       new ReduceAction304,
-                       new ReduceAction305,
-                       new ReduceAction306,
-                       new ReduceAction307,
-                       new ReduceAction308,
-                       new ReduceAction309,
-                       new ReduceAction310,
-                       new ReduceAction311,
-                       new ReduceAction312,
-                       new ReduceAction313,
-                       new ReduceAction314,
-                       new ReduceAction315,
-                       new ReduceAction316,
-                       new ReduceAction317,
-                       new ReduceAction318,
-                       new ReduceAction319,
-                       new ReduceAction320,
-                       new ReduceAction321,
-                       new ReduceAction322,
-                       new ReduceAction323,
-                       new ReduceAction324,
-                       new ReduceAction325,
-                       new ReduceAction326,
-                       new ReduceAction327,
-                       new ReduceAction328,
-                       new ReduceAction329,
-                       new ReduceAction330,
-                       new ReduceAction331,
-                       new ReduceAction332,
-                       new ReduceAction333,
-                       new ReduceAction334,
-                       new ReduceAction335,
-                       new ReduceAction336,
-                       new ReduceAction337,
-                       new ReduceAction338,
-                       new ReduceAction339,
-                       new ReduceAction340,
-                       new ReduceAction341,
-                       new ReduceAction342,
-                       new ReduceAction343,
-                       new ReduceAction344,
-                       new ReduceAction345,
-                       new ReduceAction346,
-                       new ReduceAction347,
-                       new ReduceAction348,
-                       new ReduceAction349,
-                       new ReduceAction350,
-                       new ReduceAction351,
-                       new ReduceAction352,
-                       new ReduceAction353,
-                       new ReduceAction354,
-                       new ReduceAction355,
-                       new ReduceAction356,
-                       new ReduceAction357,
-                       new ReduceAction358,
-                       new ReduceAction359,
-                       new ReduceAction360,
-                       new ReduceAction361,
-                       new ReduceAction362,
-                       new ReduceAction363,
-                       new ReduceAction364,
-                       new ReduceAction365,
-                       new ReduceAction366,
-                       new ReduceAction367,
-                       new ReduceAction368,
-                       new ReduceAction369,
-                       new ReduceAction370,
-                       new ReduceAction371,
-                       new ReduceAction372,
-                       new ReduceAction373,
-                       new ReduceAction374,
-                       new ReduceAction375,
-                       new ReduceAction376,
-                       new ReduceAction377,
-                       new ReduceAction378,
-                       new ReduceAction379,
-                       new ReduceAction380,
-                       new ReduceAction381,
-                       new ReduceAction382,
-                       new ReduceAction383,
-                       new ReduceAction384,
-                       new ReduceAction385,
-                       new ReduceAction386,
-                       new ReduceAction387,
-                       new ReduceAction388,
-                       new ReduceAction389,
-                       new ReduceAction390,
-                       new ReduceAction391,
-                       new ReduceAction392,
-                       new ReduceAction393,
-                       new ReduceAction394,
-                       new ReduceAction395,
-                       new ReduceAction396,
-                       new ReduceAction397,
-                       new ReduceAction398,
-                       new ReduceAction399,
-                       new ReduceAction400,
-                       new ReduceAction401,
-                       new ReduceAction402,
-                       new ReduceAction403,
-                       new ReduceAction404,
-                       new ReduceAction405,
-                       new ReduceAction406,
-                       new ReduceAction407,
-                       new ReduceAction408,
-                       new ReduceAction409,
-                       new ReduceAction410,
-                       new ReduceAction411,
-                       new ReduceAction412,
-                       new ReduceAction413,
-                       new ReduceAction414,
-                       new ReduceAction415,
-                       new ReduceAction416,
-                       new ReduceAction417,
-                       new ReduceAction418,
-                       new ReduceAction419,
-                       new ReduceAction420,
-                       new ReduceAction421,
-                       new ReduceAction422,
-                       new ReduceAction423,
-                       new ReduceAction424,
-                       new ReduceAction425,
-                       new ReduceAction426,
-                       new ReduceAction427,
-                       new ReduceAction428,
-                       new ReduceAction429,
-                       new ReduceAction430,
-                       new ReduceAction431,
-                       new ReduceAction432,
-                       new ReduceAction433,
-                       new ReduceAction434,
-                       new ReduceAction435,
-                       new ReduceAction436,
-                       new ReduceAction437,
-                       new ReduceAction438,
-                       new ReduceAction439,
-                       new ReduceAction440,
-                       new ReduceAction441,
-                       new ReduceAction442,
-                       new ReduceAction443,
-                       new ReduceAction444,
-                       new ReduceAction445,
-                       new ReduceAction446,
-                       new ReduceAction447,
-                       new ReduceAction448,
-                       new ReduceAction449,
-                       new ReduceAction450,
-                       new ReduceAction451,
-                       new ReduceAction452,
-                       new ReduceAction453,
-                       new ReduceAction454,
-                       new ReduceAction455,
-                       new ReduceAction456,
-                       new ReduceAction457,
-                       new ReduceAction458,
-                       new ReduceAction459,
-                       new ReduceAction460,
-                       new ReduceAction461,
-                       new ReduceAction462,
-                       new ReduceAction463,
-                       new ReduceAction464,
-                       new ReduceAction465,
-                       new ReduceAction466,
-                       new ReduceAction467,
-                       new ReduceAction468,
-                       new ReduceAction469,
-                       new ReduceAction470,
-                       new ReduceAction471,
-                       new ReduceAction472,
-                       new ReduceAction473,
-                       new ReduceAction474,
-                       new ReduceAction475,
-                       new ReduceAction476,
-                       new ReduceAction477,
-                       new ReduceAction478,
-                       new ReduceAction479,
-                       new ReduceAction480,
-                       new ReduceAction481,
-                       new ReduceAction482,
-                       new ReduceAction483,
-                       new ReduceAction484,
-                       new ReduceAction485,
-                       new ReduceAction486,
-                       new ReduceAction487,
-                       new ReduceAction488,
-                       new ReduceAction489,
-                       new ReduceAction490,
-                       new ReduceAction491,
-                       new ReduceAction492,
-                       new ReduceAction493,
-                       new ReduceAction494,
-                       new ReduceAction495,
-                       new ReduceAction496,
-                       new ReduceAction497,
-                       new ReduceAction498,
-                       new ReduceAction499,
-                       new ReduceAction500,
-                       new ReduceAction501,
-                       new ReduceAction502,
-                       new ReduceAction503,
-                       new ReduceAction504,
-                       new ReduceAction505,
-                       new ReduceAction506,
-                       new ReduceAction507,
-                       new ReduceAction508,
-                       new ReduceAction509,
-                       new ReduceAction510,
-                       new ReduceAction511,
-                       new ReduceAction512,
-                       new ReduceAction513,
-                       new ReduceAction514,
-                       new ReduceAction515,
-                       new ReduceAction516,
-                       new ReduceAction517,
-                       new ReduceAction518,
-                       new ReduceAction519,
-                       new ReduceAction520,
-                       new ReduceAction521,
-                       new ReduceAction522,
-                       new ReduceAction523,
-                       new ReduceAction524,
-                       new ReduceAction525,
-                       new ReduceAction526,
-                       new ReduceAction527,
-                       new ReduceAction528,
-                       new ReduceAction529,
-                       new ReduceAction530,
-                       new ReduceAction531,
-                       new ReduceAction532,
-                       new ReduceAction533,
-                       new ReduceAction534,
-                       new ReduceAction535,
-                       new ReduceAction536,
-                       new ReduceAction537,
-                       new ReduceAction538,
-                       new ReduceAction539,
-                       new ReduceAction540,
-                       new ReduceAction541,
-                       new ReduceAction542,
-                       new ReduceAction543,
-                       new ReduceAction544,
-                       new ReduceAction545,
-                       new ReduceAction546,
-                       new ReduceAction547,
-                       new ReduceAction548,
-                       new ReduceAction549,
-                       new ReduceAction550,
-                       new ReduceAction551,
-                       new ReduceAction552,
-                       new ReduceAction553,
-                       new ReduceAction554,
-                       new ReduceAction555,
-                       new ReduceAction556,
-                       new ReduceAction557,
-                       new ReduceAction558,
-                       new ReduceAction559,
-                       new ReduceAction560,
-                       new ReduceAction561,
-                       new ReduceAction562,
-                       new ReduceAction563,
-                       new ReduceAction564,
-                       new ReduceAction565,
-                       new ReduceAction566,
-                       new ReduceAction567,
-                       new ReduceAction568,
-                       new ReduceAction569,
-                       new ReduceAction570,
-                       new ReduceAction571,
-                       new ReduceAction572,
-                       new ReduceAction573,
-                       new ReduceAction574,
-                       new ReduceAction575,
-                       new ReduceAction576,
-                       new ReduceAction577,
-                       new ReduceAction578,
-                       new ReduceAction579,
-                       new ReduceAction580,
-                       new ReduceAction581,
-                       new ReduceAction582,
-                       new ReduceAction583,
-                       new ReduceAction584,
-                       new ReduceAction585,
-                       new ReduceAction586,
-                       new ReduceAction587,
-                       new ReduceAction588,
-                       new ReduceAction589,
-                       new ReduceAction590,
-                       new ReduceAction591,
-                       new ReduceAction592,
-                       new ReduceAction593,
-                       new ReduceAction594,
-                       new ReduceAction595,
-                       new ReduceAction596,
-                       new ReduceAction597,
-                       new ReduceAction598,
-                       new ReduceAction599,
-                       new ReduceAction600,
-                       new ReduceAction601,
-                       new ReduceAction602,
-                       new ReduceAction603,
-                       new ReduceAction604,
-                       new ReduceAction605,
-                       new ReduceAction606,
-                       new ReduceAction607,
-                       new ReduceAction608,
-                       new ReduceAction609,
-                       new ReduceAction610,
-                       new ReduceAction611,
-                       new ReduceAction612,
-                       new ReduceAction613,
-                       new ReduceAction614,
-                       new ReduceAction615,
-                       new ReduceAction616,
-                       new ReduceAction617,
-                       new ReduceAction618,
-                       new ReduceAction619,
-                       new ReduceAction620,
-                       new ReduceAction621,
-                       new ReduceAction622,
-                       new ReduceAction623,
-                       new ReduceAction624,
-                       new ReduceAction625,
-                       new ReduceAction626,
-                       new ReduceAction627,
-                       new ReduceAction628,
-                       new ReduceAction629,
-                       new ReduceAction630,
-                       new ReduceAction631,
-                       new ReduceAction632,
-                       new ReduceAction633,
-                       new ReduceAction634,
-                       new ReduceAction635,
-                       new ReduceAction636,
-                       new ReduceAction637,
-                       new ReduceAction638,
-                       new ReduceAction639,
-                       new ReduceAction640,
-                       new ReduceAction641,
-                       new ReduceAction642,
-                       new ReduceAction643,
-                       new ReduceAction644,
-                       new ReduceAction645,
-                       new ReduceAction646,
-                       new ReduceAction647,
-                       new ReduceAction648,
-                       new ReduceAction649,
-                       new ReduceAction650,
-                       new ReduceAction651,
-                       new ReduceAction652,
-                       new ReduceAction653,
-                       new ReduceAction654,
-                       new ReduceAction655,
-                       new ReduceAction656,
-                       new ReduceAction657,
-                       new ReduceAction658,
-                       new ReduceAction659,
-                       new ReduceAction660,
-                       new ReduceAction661,
-                       new ReduceAction662,
-                       new ReduceAction663,
-                       new ReduceAction664
+                       new ReduceAction0(0),
+                       new ReduceAction1(0),
+                       new ReduceAction2(0),
+                       new ReduceAction3(0),
+                       new ReduceAction4(0),
+                       new ReduceAction5(0),
+                       new ReduceAction6(0),
+                       new ReduceAction7(0),
+                       new ReduceAction8(0),
+                       new ReduceAction9(0),
+                       new ReduceAction10(0),
+                       new ReduceAction11(0),
+                       new ReduceAction12(0),
+                       new ReduceAction13(0),
+                       new ReduceAction14(0),
+                       new ReduceAction15(0),
+                       new ReduceAction16(0),
+                       new ReduceAction17(0),
+                       new ReduceAction18(0),
+                       new ReduceAction19(0),
+                       new ReduceAction20(0),
+                       new ReduceAction21(0),
+                       new ReduceAction22(0),
+                       new ReduceAction23(0),
+                       new ReduceAction24(0),
+                       new ReduceAction25(0),
+                       new ReduceAction26(0),
+                       new ReduceAction27(0),
+                       new ReduceAction28(0),
+                       new ReduceAction29(0),
+                       new ReduceAction30(0),
+                       new ReduceAction31(0),
+                       new ReduceAction32(1),
+                       new ReduceAction33(2),
+                       new ReduceAction34(2),
+                       new ReduceAction35(3),
+                       new ReduceAction36(3),
+                       new ReduceAction37(4),
+                       new ReduceAction37(4),
+                       new ReduceAction39(5),
+                       new ReduceAction40(5),
+                       new ReduceAction41(5),
+                       new ReduceAction42(5),
+                       new ReduceAction43(5),
+                       new ReduceAction44(5),
+                       new ReduceAction45(5),
+                       new ReduceAction46(5),
+                       new ReduceAction47(5),
+                       new ReduceAction48(5),
+                       new ReduceAction49(5),
+                       new ReduceAction50(5),
+                       new ReduceAction51(5),
+                       new ReduceAction52(5),
+                       new ReduceAction53(5),
+                       new ReduceAction54(5),
+                       new ReduceAction55(6),
+                       new ReduceAction56(6),
+                       new ReduceAction57(6),
+                       new ReduceAction58(6),
+                       new ReduceAction59(7),
+                       new ReduceAction60(7),
+                       new ReduceAction61(8),
+                       new ReduceAction62(9),
+                       new ReduceAction63(9),
+                       new ReduceAction64(10),
+                       new ReduceAction65(10),
+                       new ReduceAction66(11),
+                       new ReduceAction67(12),
+                       new ReduceAction68(12),
+                       new ReduceAction69(12),
+                       new ReduceAction70(12),
+                       new ReduceAction71(12),
+                       new ReduceAction72(12),
+                       new ReduceAction73(12),
+                       new ReduceAction74(12),
+                       new ReduceAction75(12),
+                       new ReduceAction76(12),
+                       new ReduceAction77(12),
+                       new ReduceAction78(12),
+                       new ReduceAction79(12),
+                       new ReduceAction80(12),
+                       new ReduceAction81(12),
+                       new ReduceAction82(12),
+                       new ReduceAction83(12),
+                       new ReduceAction84(12),
+                       new ReduceAction85(12),
+                       new ReduceAction86(12),
+                       new ReduceAction87(12),
+                       new ReduceAction88(12),
+                       new ReduceAction89(12),
+                       new ReduceAction90(12),
+                       new ReduceAction91(12),
+                       new ReduceAction92(12),
+                       new ReduceAction93(12),
+                       new ReduceAction94(12),
+                       new ReduceAction95(12),
+                       new ReduceAction96(12),
+                       new ReduceAction97(12),
+                       new ReduceAction98(12),
+                       new ReduceAction99(12),
+                       new ReduceAction100(12),
+                       new ReduceAction101(12),
+                       new ReduceAction102(12),
+                       new ReduceAction103(12),
+                       new ReduceAction104(12),
+                       new ReduceAction105(12),
+                       new ReduceAction106(12),
+                       new ReduceAction107(12),
+                       new ReduceAction108(12),
+                       new ReduceAction109(12),
+                       new ReduceAction110(12),
+                       new ReduceAction111(12),
+                       new ReduceAction112(12),
+                       new ReduceAction113(12),
+                       new ReduceAction114(12),
+                       new ReduceAction115(12),
+                       new ReduceAction116(12),
+                       new ReduceAction117(12),
+                       new ReduceAction118(12),
+                       new ReduceAction119(12),
+                       new ReduceAction120(12),
+                       new ReduceAction121(12),
+                       new ReduceAction122(12),
+                       new ReduceAction123(13),
+                       new ReduceAction124(13),
+                       new ReduceAction125(14),
+                       new ReduceAction126(14),
+                       new ReduceAction127(15),
+                       new ReduceAction128(15),
+                       new ReduceAction129(15),
+                       new ReduceAction130(15),
+                       new ReduceAction131(16),
+                       new ReduceAction132(16),
+                       new ReduceAction133(16),
+                       new ReduceAction134(16),
+                       new ReduceAction135(16),
+                       new ReduceAction136(16),
+                       new ReduceAction137(16),
+                       new ReduceAction138(16),
+                       new ReduceAction139(16),
+                       new ReduceAction140(16),
+                       new ReduceAction141(16),
+                       new ReduceAction142(16),
+                       new ReduceAction143(16),
+                       new ReduceAction144(16),
+                       new ReduceAction145(16),
+                       new ReduceAction146(16),
+                       new ReduceAction147(17),
+                       new ReduceAction148(17),
+                       new ReduceAction149(17),
+                       new ReduceAction150(17),
+                       new ReduceAction151(17),
+                       new ReduceAction152(17),
+                       new ReduceAction153(17),
+                       new ReduceAction154(17),
+                       new ReduceAction155(18),
+                       new ReduceAction156(18),
+                       new ReduceAction157(18),
+                       new ReduceAction158(18),
+                       new ReduceAction159(19),
+                       new ReduceAction160(19),
+                       new ReduceAction161(19),
+                       new ReduceAction162(20),
+                       new ReduceAction163(21),
+                       new ReduceAction164(21),
+                       new ReduceAction165(21),
+                       new ReduceAction166(22),
+                       new ReduceAction167(23),
+                       new ReduceAction168(23),
+                       new ReduceAction169(23),
+                       new ReduceAction170(23),
+                       new ReduceAction171(23),
+                       new ReduceAction172(23),
+                       new ReduceAction173(24),
+                       new ReduceAction174(25),
+                       new ReduceAction175(25),
+                       new ReduceAction176(25),
+                       new ReduceAction177(25),
+                       new ReduceAction178(26),
+                       new ReduceAction179(26),
+                       new ReduceAction180(27),
+                       new ReduceAction180(28),
+                       new ReduceAction182(29),
+                       new ReduceAction183(29),
+                       new ReduceAction184(29),
+                       new ReduceAction185(29),
+                       new ReduceAction186(30),
+                       new ReduceAction187(30),
+                       new ReduceAction188(31),
+                       new ReduceAction189(31),
+                       new ReduceAction190(32),
+                       new ReduceAction185(33),
+                       new ReduceAction185(33),
+                       new ReduceAction193(33),
+                       new ReduceAction194(33),
+                       new ReduceAction195(33),
+                       new ReduceAction196(33),
+                       new ReduceAction197(33),
+                       new ReduceAction198(33),
+                       new ReduceAction199(33),
+                       new ReduceAction200(33),
+                       new ReduceAction201(33),
+                       new ReduceAction202(33),
+                       new ReduceAction203(33),
+                       new ReduceAction185(33),
+                       new ReduceAction185(33),
+                       new ReduceAction185(33),
+                       new ReduceAction185(33),
+                       new ReduceAction185(33),
+                       new ReduceAction185(33),
+                       new ReduceAction210(33),
+                       new ReduceAction211(33),
+                       new ReduceAction212(33),
+                       new ReduceAction213(33),
+                       new ReduceAction214(33),
+                       new ReduceAction215(33),
+                       new ReduceAction216(33),
+                       new ReduceAction217(33),
+                       new ReduceAction218(34),
+                       new ReduceAction219(35),
+                       new ReduceAction220(35),
+                       new ReduceAction221(36),
+                       new ReduceAction222(36),
+                       new ReduceAction223(36),
+                       new ReduceAction224(36),
+                       new ReduceAction225(36),
+                       new ReduceAction226(36),
+                       new ReduceAction227(37),
+                       new ReduceAction228(37),
+                       new ReduceAction229(37),
+                       new ReduceAction230(37),
+                       new ReduceAction231(38),
+                       new ReduceAction232(38),
+                       new ReduceAction233(39),
+                       new ReduceAction234(40),
+                       new ReduceAction235(40),
+                       new ReduceAction236(40),
+                       new ReduceAction237(40),
+                       new ReduceAction238(41),
+                       new ReduceAction239(41),
+                       new ReduceAction240(41),
+                       new ReduceAction241(41),
+                       new ReduceAction242(41),
+                       new ReduceAction243(41),
+                       new ReduceAction244(41),
+                       new ReduceAction245(41),
+                       new ReduceAction246(41),
+                       new ReduceAction247(41),
+                       new ReduceAction248(42),
+                       new ReduceAction249(42),
+                       new ReduceAction250(43),
+                       new ReduceAction251(43),
+                       new ReduceAction252(44),
+                       new ReduceAction253(44),
+                       new ReduceAction254(44),
+                       new ReduceAction255(44),
+                       new ReduceAction256(44),
+                       new ReduceAction190(45),
+                       new ReduceAction36(45),
+                       new ReduceAction259(46),
+                       new ReduceAction260(46),
+                       new ReduceAction261(47),
+                       new ReduceAction262(47),
+                       new ReduceAction263(48),
+                       new ReduceAction264(48),
+                       new ReduceAction265(49),
+                       new ReduceAction266(49),
+                       new ReduceAction267(49),
+                       new ReduceAction268(49),
+                       new ReduceAction269(50),
+                       new ReduceAction185(51),
+                       new ReduceAction212(51),
+                       new ReduceAction213(51),
+                       new ReduceAction273(51),
+                       new ReduceAction185(52),
+                       new ReduceAction275(52),
+                       new ReduceAction185(53),
+                       new ReduceAction277(53),
+                       new ReduceAction278(53),
+                       new ReduceAction279(53),
+                       new ReduceAction185(54),
+                       new ReduceAction281(54),
+                       new ReduceAction185(55),
+                       new ReduceAction283(55),
+                       new ReduceAction284(55),
+                       new ReduceAction285(55),
+                       new ReduceAction286(55),
+                       new ReduceAction287(55),
+                       new ReduceAction288(55),
+                       new ReduceAction289(55),
+                       new ReduceAction290(55),
+                       new ReduceAction291(55),
+                       new ReduceAction185(56),
+                       new ReduceAction293(56),
+                       new ReduceAction294(56),
+                       new ReduceAction185(57),
+                       new ReduceAction296(57),
+                       new ReduceAction297(57),
+                       new ReduceAction298(57),
+                       new ReduceAction185(58),
+                       new ReduceAction300(58),
+                       new ReduceAction301(58),
+                       new ReduceAction185(59),
+                       new ReduceAction303(59),
+                       new ReduceAction304(59),
+                       new ReduceAction305(59),
+                       new ReduceAction306(60),
+                       new ReduceAction307(60),
+                       new ReduceAction210(60),
+                       new ReduceAction211(60),
+                       new ReduceAction214(60),
+                       new ReduceAction215(60),
+                       new ReduceAction216(60),
+                       new ReduceAction217(60),
+                       new ReduceAction314(60),
+                       new ReduceAction315(60),
+                       new ReduceAction316(60),
+                       new ReduceAction317(60),
+                       new ReduceAction318(60),
+                       new ReduceAction319(60),
+                       new ReduceAction320(60),
+                       new ReduceAction321(60),
+                       new ReduceAction322(60),
+                       new ReduceAction323(60),
+                       new ReduceAction324(60),
+                       new ReduceAction325(60),
+                       new ReduceAction326(60),
+                       new ReduceAction185(60),
+                       new ReduceAction182(60),
+                       new ReduceAction329(60),
+                       new ReduceAction330(60),
+                       new ReduceAction331(61),
+                       new ReduceAction332(61),
+                       new ReduceAction333(62),
+                       new ReduceAction334(63),
+                       new ReduceAction333(64),
+                       new ReduceAction336(65),
+                       new ReduceAction337(66),
+                       new ReduceAction338(67),
+                       new ReduceAction339(67),
+                       new ReduceAction161(67),
+                       new ReduceAction341(67),
+                       new ReduceAction338(68),
+                       new ReduceAction339(68),
+                       new ReduceAction344(68),
+                       new ReduceAction161(68),
+                       new ReduceAction341(68),
+                       new ReduceAction338(69),
+                       new ReduceAction339(69),
+                       new ReduceAction349(70),
+                       new ReduceAction350(71),
+                       new ReduceAction351(71),
+                       new ReduceAction352(72),
+                       new ReduceAction353(72),
+                       new ReduceAction354(73),
+                       new ReduceAction355(73),
+                       new ReduceAction356(73),
+                       new ReduceAction357(74),
+                       new ReduceAction358(75),
+                       new ReduceAction359(76),
+                       new ReduceAction359(76),
+                       new ReduceAction361(77),
+                       new ReduceAction362(77),
+                       new ReduceAction36(77),
+                       new ReduceAction364(78),
+                       new ReduceAction365(78),
+                       new ReduceAction366(79),
+                       new ReduceAction367(79),
+                       new ReduceAction359(79),
+                       new ReduceAction66(80),
+                       new ReduceAction67(81),
+                       new ReduceAction68(81),
+                       new ReduceAction69(81),
+                       new ReduceAction70(81),
+                       new ReduceAction71(81),
+                       new ReduceAction72(81),
+                       new ReduceAction77(81),
+                       new ReduceAction78(81),
+                       new ReduceAction79(81),
+                       new ReduceAction80(81),
+                       new ReduceAction147(82),
+                       new ReduceAction148(82),
+                       new ReduceAction149(82),
+                       new ReduceAction150(82),
+                       new ReduceAction174(83),
+                       new ReduceAction175(83),
+                       new ReduceAction185(84),
+                       new ReduceAction212(84),
+                       new ReduceAction213(84),
+                       new ReduceAction185(85),
+                       new ReduceAction275(85),
+                       new ReduceAction185(86),
+                       new ReduceAction277(86),
+                       new ReduceAction278(86),
+                       new ReduceAction279(86),
+                       new ReduceAction185(87),
+                       new ReduceAction281(87),
+                       new ReduceAction185(88),
+                       new ReduceAction283(88),
+                       new ReduceAction284(88),
+                       new ReduceAction285(88),
+                       new ReduceAction286(88),
+                       new ReduceAction287(88),
+                       new ReduceAction288(88),
+                       new ReduceAction289(88),
+                       new ReduceAction290(88),
+                       new ReduceAction291(88),
+                       new ReduceAction185(89),
+                       new ReduceAction293(89),
+                       new ReduceAction294(89),
+                       new ReduceAction185(90),
+                       new ReduceAction296(90),
+                       new ReduceAction297(90),
+                       new ReduceAction298(90),
+                       new ReduceAction185(91),
+                       new ReduceAction300(91),
+                       new ReduceAction301(91),
+                       new ReduceAction185(92),
+                       new ReduceAction303(92),
+                       new ReduceAction304(92),
+                       new ReduceAction305(92),
+                       new ReduceAction306(93),
+                       new ReduceAction307(93),
+                       new ReduceAction210(93),
+                       new ReduceAction211(93),
+                       new ReduceAction214(93),
+                       new ReduceAction215(93),
+                       new ReduceAction216(93),
+                       new ReduceAction217(93),
+                       new ReduceAction315(93),
+                       new ReduceAction319(93),
+                       new ReduceAction320(93),
+                       new ReduceAction321(93),
+                       new ReduceAction322(93),
+                       new ReduceAction323(93),
+                       new ReduceAction324(93),
+                       new ReduceAction325(93),
+                       new ReduceAction326(93),
+                       new ReduceAction185(93),
+                       new ReduceAction182(93),
+                       new ReduceAction329(93),
+                       new ReduceAction330(93),
+                       new ReduceAction182(94),
+                       new ReduceAction183(94),
+                       new ReduceAction184(94),
+                       new ReduceAction185(94),
+                       new ReduceAction185(95),
+                       new ReduceAction185(95),
+                       new ReduceAction193(95),
+                       new ReduceAction194(95),
+                       new ReduceAction195(95),
+                       new ReduceAction196(95),
+                       new ReduceAction197(95),
+                       new ReduceAction198(95),
+                       new ReduceAction199(95),
+                       new ReduceAction200(95),
+                       new ReduceAction201(95),
+                       new ReduceAction202(95),
+                       new ReduceAction203(95),
+                       new ReduceAction185(95),
+                       new ReduceAction185(95),
+                       new ReduceAction185(95),
+                       new ReduceAction185(95),
+                       new ReduceAction185(95),
+                       new ReduceAction185(95),
+                       new ReduceAction210(95),
+                       new ReduceAction211(95),
+                       new ReduceAction212(95),
+                       new ReduceAction213(95),
+                       new ReduceAction214(95),
+                       new ReduceAction215(95),
+                       new ReduceAction216(95),
+                       new ReduceAction217(95),
+                       new ReduceAction219(96),
+                       new ReduceAction220(96),
+                       new ReduceAction221(97),
+                       new ReduceAction222(97),
+                       new ReduceAction223(97),
+                       new ReduceAction224(97),
+                       new ReduceAction225(97),
+                       new ReduceAction226(97),
+                       new ReduceAction233(98),
+                       new ReduceAction234(99),
+                       new ReduceAction235(99),
+                       new ReduceAction236(99),
+                       new ReduceAction237(99),
+                       new ReduceAction238(100),
+                       new ReduceAction239(100),
+                       new ReduceAction240(100),
+                       new ReduceAction241(100),
+                       new ReduceAction242(100),
+                       new ReduceAction243(100),
+                       new ReduceAction244(100),
+                       new ReduceAction245(100),
+                       new ReduceAction246(100),
+                       new ReduceAction247(100),
+                       new ReduceAction250(101),
+                       new ReduceAction251(101),
+                       new ReduceAction252(102),
+                       new ReduceAction259(103),
+                       new ReduceAction260(103),
+                       new ReduceAction261(104),
+                       new ReduceAction262(104),
+                       new ReduceAction263(105),
+                       new ReduceAction264(105),
+                       new ReduceAction265(106),
+                       new ReduceAction266(106),
+                       new ReduceAction185(107),
+                       new ReduceAction212(107),
+                       new ReduceAction213(107),
+                       new ReduceAction273(107),
+                       new ReduceAction185(108),
+                       new ReduceAction212(108),
+                       new ReduceAction213(108),
+                       new ReduceAction182(109),
+                       new ReduceAction183(109),
+                       new ReduceAction184(109),
+                       new ReduceAction182(110),
+                       new ReduceAction183(110),
+                       new ReduceAction184(110),
+                       new ReduceAction185(111),
+                       new ReduceAction212(111),
+                       new ReduceAction213(111),
+                       new ReduceAction185(112),
+                       new ReduceAction275(112),
+                       new ReduceAction185(113),
+                       new ReduceAction277(113),
+                       new ReduceAction278(113),
+                       new ReduceAction279(113),
+                       new ReduceAction185(114),
+                       new ReduceAction281(114),
+                       new ReduceAction185(115),
+                       new ReduceAction283(115),
+                       new ReduceAction284(115),
+                       new ReduceAction285(115),
+                       new ReduceAction286(115),
+                       new ReduceAction287(115),
+                       new ReduceAction288(115),
+                       new ReduceAction289(115),
+                       new ReduceAction290(115),
+                       new ReduceAction291(115),
+                       new ReduceAction185(116),
+                       new ReduceAction293(116),
+                       new ReduceAction294(116),
+                       new ReduceAction185(117),
+                       new ReduceAction296(117),
+                       new ReduceAction297(117),
+                       new ReduceAction298(117),
+                       new ReduceAction185(118),
+                       new ReduceAction300(118),
+                       new ReduceAction301(118),
+                       new ReduceAction185(119),
+                       new ReduceAction303(119),
+                       new ReduceAction304(119),
+                       new ReduceAction305(119),
+                       new ReduceAction306(120),
+                       new ReduceAction307(120),
+                       new ReduceAction210(120),
+                       new ReduceAction211(120),
+                       new ReduceAction214(120),
+                       new ReduceAction215(120),
+                       new ReduceAction216(120),
+                       new ReduceAction217(120),
+                       new ReduceAction314(120),
+                       new ReduceAction315(120),
+                       new ReduceAction319(120),
+                       new ReduceAction320(120),
+                       new ReduceAction321(120),
+                       new ReduceAction322(120),
+                       new ReduceAction323(120),
+                       new ReduceAction324(120),
+                       new ReduceAction325(120),
+                       new ReduceAction326(120),
+                       new ReduceAction185(120),
+                       new ReduceAction329(120),
+                       new ReduceAction330(120),
+                       new ReduceAction185(121),
+                       new ReduceAction212(121),
+                       new ReduceAction213(121),
+                       new ReduceAction185(122),
+                       new ReduceAction275(122),
+                       new ReduceAction185(123),
+                       new ReduceAction277(123),
+                       new ReduceAction278(123),
+                       new ReduceAction279(123),
+                       new ReduceAction185(124),
+                       new ReduceAction281(124),
+                       new ReduceAction185(125),
+                       new ReduceAction283(125),
+                       new ReduceAction284(125),
+                       new ReduceAction285(125),
+                       new ReduceAction286(125),
+                       new ReduceAction287(125),
+                       new ReduceAction288(125),
+                       new ReduceAction289(125),
+                       new ReduceAction290(125),
+                       new ReduceAction291(125),
+                       new ReduceAction185(126),
+                       new ReduceAction293(126),
+                       new ReduceAction294(126),
+                       new ReduceAction185(127),
+                       new ReduceAction296(127),
+                       new ReduceAction297(127),
+                       new ReduceAction298(127),
+                       new ReduceAction185(128),
+                       new ReduceAction300(128),
+                       new ReduceAction301(128),
+                       new ReduceAction185(129),
+                       new ReduceAction303(129),
+                       new ReduceAction609(129),
+                       new ReduceAction610(130),
+                       new ReduceAction611(130),
+                       new ReduceAction214(130),
+                       new ReduceAction215(130),
+                       new ReduceAction614(130),
+                       new ReduceAction315(130),
+                       new ReduceAction319(130),
+                       new ReduceAction320(130),
+                       new ReduceAction321(130),
+                       new ReduceAction322(130),
+                       new ReduceAction323(130),
+                       new ReduceAction324(130),
+                       new ReduceAction325(130),
+                       new ReduceAction326(130),
+                       new ReduceAction185(130),
+                       new ReduceAction329(130),
+                       new ReduceAction330(130),
+                       new ReduceAction627(131),
+                       new ReduceAction628(131),
+                       new ReduceAction185(132),
+                       new ReduceAction212(132),
+                       new ReduceAction213(132),
+                       new ReduceAction185(133),
+                       new ReduceAction212(133),
+                       new ReduceAction213(133),
+                       new ReduceAction635(134),
+                       new ReduceAction636(134),
+                       new ReduceAction637(135),
+                       new ReduceAction638(135),
+                       new ReduceAction639(136),
+                       new ReduceAction640(136),
+                       new ReduceAction641(137),
+                       new ReduceAction642(137),
+                       new ReduceAction639(138),
+                       new ReduceAction640(138),
+                       new ReduceAction645(139),
+                       new ReduceAction646(139),
+                       new ReduceAction647(140),
+                       new ReduceAction648(140),
+                       new ReduceAction649(141),
+                       new ReduceAction650(141),
+                       new ReduceAction178(142),
+                       new ReduceAction652(142),
+                       new ReduceAction344(143),
+                       new ReduceAction654(143),
+                       new ReduceAction351(144),
+                       new ReduceAction656(144),
+                       new ReduceAction344(145),
+                       new ReduceAction654(145),
+                       new ReduceAction352(146),
+                       new ReduceAction660(146),
+                       new ReduceAction661(147),
+                       new ReduceAction662(147),
+                       new ReduceAction663(148),
+                       new ReduceAction664(148)
                )
        end
 end
@@ -945,9 +942,10 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction1
 special ReduceAction
@@ -965,9 +963,10 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction2
 special ReduceAction
@@ -986,9 +985,10 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction3
 special ReduceAction
@@ -1010,9 +1010,10 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction4
 special ReduceAction
@@ -1031,9 +1032,10 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction5
 special ReduceAction
@@ -1055,9 +1057,10 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction6
 special ReduceAction
@@ -1080,9 +1083,10 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction7
 special ReduceAction
@@ -1108,9 +1112,10 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction8
 special ReduceAction
@@ -1136,9 +1141,10 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction9
 special ReduceAction
@@ -1167,9 +1173,10 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction10
 special ReduceAction
@@ -1199,9 +1206,10 @@ special ReduceAction
                                                listnode8
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction11
 special ReduceAction
@@ -1234,9 +1242,10 @@ special ReduceAction
                                                listnode8
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction12
 special ReduceAction
@@ -1266,9 +1275,10 @@ special ReduceAction
                                                listnode8
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction13
 special ReduceAction
@@ -1301,9 +1311,10 @@ special ReduceAction
                                                listnode8
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction14
 special ReduceAction
@@ -1337,9 +1348,10 @@ special ReduceAction
                                                listnode9
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction15
 special ReduceAction
@@ -1376,9 +1388,10 @@ special ReduceAction
                                                listnode9
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction16
 special ReduceAction
@@ -1399,9 +1412,10 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction17
 special ReduceAction
@@ -1425,9 +1439,10 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction18
 special ReduceAction
@@ -1452,9 +1467,10 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction19
 special ReduceAction
@@ -1482,9 +1498,10 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction20
 special ReduceAction
@@ -1509,9 +1526,10 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction21
 special ReduceAction
@@ -1539,9 +1557,10 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction22
 special ReduceAction
@@ -1570,9 +1589,10 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction23
 special ReduceAction
@@ -1604,9 +1624,10 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction24
 special ReduceAction
@@ -1638,9 +1659,10 @@ special ReduceAction
                                                listnode8
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction25
 special ReduceAction
@@ -1675,9 +1697,10 @@ special ReduceAction
                                                listnode8
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction26
 special ReduceAction
@@ -1713,9 +1736,10 @@ special ReduceAction
                                                listnode9
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction27
 special ReduceAction
@@ -1754,9 +1778,10 @@ special ReduceAction
                                                listnode9
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction28
 special ReduceAction
@@ -1792,9 +1817,10 @@ special ReduceAction
                                                listnode9
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction29
 special ReduceAction
@@ -1833,9 +1859,10 @@ special ReduceAction
                                                listnode9
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction30
 special ReduceAction
@@ -1875,9 +1902,10 @@ special ReduceAction
                                                listnode10
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction31
 special ReduceAction
@@ -1920,9 +1948,10 @@ special ReduceAction
                                                listnode10
                                        )
                                        node_list = pmodulenode1
-                                       p.push(p.go_to(0), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction32
 special ReduceAction
@@ -1946,9 +1975,10 @@ special ReduceAction
                                                tidnode4
                                        )
                                        node_list = ppackagedeclnode1
-                                       p.push(p.go_to(1), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction33
 special ReduceAction
@@ -1973,9 +2003,10 @@ special ReduceAction
                                                tidnode4
                                        )
                                        node_list = pimportnode1
-                                       p.push(p.go_to(2), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction34
 special ReduceAction
@@ -2000,9 +2031,10 @@ special ReduceAction
                                                tkwendnode4
                                        )
                                        node_list = pimportnode1
-                                       p.push(p.go_to(2), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction35
 special ReduceAction
@@ -2020,9 +2052,10 @@ special ReduceAction
                                                listnode3
                                        )
                                        node_list = pclassdefnode1
-                                       p.push(p.go_to(3), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction36
 special ReduceAction
@@ -2031,9 +2064,10 @@ special ReduceAction
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        node_list = null
-                                       p.push(p.go_to(3), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction37
 special ReduceAction
@@ -2049,27 +2083,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(4), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
-end
-private class ReduceAction38
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       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
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction39
 special ReduceAction
@@ -2105,9 +2122,10 @@ special ReduceAction
                                                listnode9
                                        )
                                        node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction40
 special ReduceAction
@@ -2146,9 +2164,10 @@ special ReduceAction
                                                listnode9
                                        )
                                        node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction41
 special ReduceAction
@@ -2188,9 +2207,10 @@ special ReduceAction
                                                listnode10
                                        )
                                        node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction42
 special ReduceAction
@@ -2233,9 +2253,10 @@ special ReduceAction
                                                listnode10
                                        )
                                        node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction43
 special ReduceAction
@@ -2275,9 +2296,10 @@ special ReduceAction
                                                listnode10
                                        )
                                        node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction44
 special ReduceAction
@@ -2320,9 +2342,10 @@ special ReduceAction
                                                listnode10
                                        )
                                        node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction45
 special ReduceAction
@@ -2366,9 +2389,10 @@ special ReduceAction
                                                listnode11
                                        )
                                        node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction46
 special ReduceAction
@@ -2415,9 +2439,10 @@ special ReduceAction
                                                listnode11
                                        )
                                        node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction47
 special ReduceAction
@@ -2457,9 +2482,10 @@ special ReduceAction
                                                listnode10
                                        )
                                        node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction48
 special ReduceAction
@@ -2502,9 +2528,10 @@ special ReduceAction
                                                listnode10
                                        )
                                        node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction49
 special ReduceAction
@@ -2548,9 +2575,10 @@ special ReduceAction
                                                listnode11
                                        )
                                        node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction50
 special ReduceAction
@@ -2597,9 +2625,10 @@ special ReduceAction
                                                listnode11
                                        )
                                        node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction51
 special ReduceAction
@@ -2643,9 +2672,10 @@ special ReduceAction
                                                listnode11
                                        )
                                        node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction52
 special ReduceAction
@@ -2692,9 +2722,10 @@ special ReduceAction
                                                listnode11
                                        )
                                        node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction53
 special ReduceAction
@@ -2742,9 +2773,10 @@ special ReduceAction
                                                listnode12
                                        )
                                        node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction54
 special ReduceAction
@@ -2795,9 +2827,10 @@ special ReduceAction
                                                listnode12
                                        )
                                        node_list = pclassdefnode1
-                                       p.push(p.go_to(5), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction55
 special ReduceAction
@@ -2811,9 +2844,10 @@ special ReduceAction
                                                tkwclassnode2
                                        )
                                        node_list = pclasskindnode1
-                                       p.push(p.go_to(6), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction56
 special ReduceAction
@@ -2831,9 +2865,10 @@ special ReduceAction
                                                tkwclassnode3
                                        )
                                        node_list = pclasskindnode1
-                                       p.push(p.go_to(6), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction57
 special ReduceAction
@@ -2847,9 +2882,10 @@ special ReduceAction
                                                tkwinterfacenode2
                                        )
                                        node_list = pclasskindnode1
-                                       p.push(p.go_to(6), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction58
 special ReduceAction
@@ -2863,9 +2899,10 @@ special ReduceAction
                                                tkwuniversalnode2
                                        )
                                        node_list = pclasskindnode1
-                                       p.push(p.go_to(6), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction59
 special ReduceAction
@@ -2879,14 +2916,14 @@ special ReduceAction
                                        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)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction60
 special ReduceAction
@@ -2901,7 +2938,6 @@ special ReduceAction
                                        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
@@ -2909,9 +2945,10 @@ special ReduceAction
                                        end
                                        listnode3 = concat(listnode3, listnode2)
                                        node_list = listnode3
-                                       p.push(p.go_to(7), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction61
 special ReduceAction
@@ -2922,11 +2959,11 @@ special ReduceAction
                                        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)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction62
 special ReduceAction
@@ -2941,9 +2978,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pformaldefnode1
-                                       p.push(p.go_to(9), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction63
 special ReduceAction
@@ -2961,9 +2999,10 @@ special ReduceAction
                                                ptypenode3
                                        )
                                        node_list = pformaldefnode1
-                                       p.push(p.go_to(9), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction64
 special ReduceAction
@@ -2984,9 +3023,10 @@ special ReduceAction
                                                ptypenode4
                                        )
                                        node_list = psuperclassnode1
-                                       p.push(p.go_to(10), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction65
 special ReduceAction
@@ -3007,9 +3047,10 @@ special ReduceAction
                                                ptypenode4
                                        )
                                        node_list = psuperclassnode1
-                                       p.push(p.go_to(10), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction66
 special ReduceAction
@@ -3019,11 +3060,11 @@ special ReduceAction
                                        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(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction67
 special ReduceAction
@@ -3059,9 +3100,10 @@ special ReduceAction
                                                pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction68
 special ReduceAction
@@ -3100,9 +3142,10 @@ special ReduceAction
                                                pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction69
 special ReduceAction
@@ -3139,9 +3182,10 @@ special ReduceAction
                                                pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction70
 special ReduceAction
@@ -3181,9 +3225,10 @@ special ReduceAction
                                                pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction71
 special ReduceAction
@@ -3220,9 +3265,10 @@ special ReduceAction
                                                pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction72
 special ReduceAction
@@ -3262,9 +3308,10 @@ special ReduceAction
                                                pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction73
 special ReduceAction
@@ -3297,9 +3344,10 @@ special ReduceAction
                                                psignaturenode7
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction74
 special ReduceAction
@@ -3335,9 +3383,10 @@ special ReduceAction
                                                psignaturenode7
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction75
 special ReduceAction
@@ -3370,9 +3419,10 @@ special ReduceAction
                                                psignaturenode7
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction76
 special ReduceAction
@@ -3408,9 +3458,10 @@ special ReduceAction
                                                psignaturenode7
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction77
 special ReduceAction
@@ -3444,9 +3495,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction78
 special ReduceAction
@@ -3483,9 +3535,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction79
 special ReduceAction
@@ -3522,9 +3575,10 @@ special ReduceAction
                                                tstringnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction80
 special ReduceAction
@@ -3564,9 +3618,10 @@ special ReduceAction
                                                tstringnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction81
 special ReduceAction
@@ -3597,9 +3652,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction82
 special ReduceAction
@@ -3633,9 +3689,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction83
 special ReduceAction
@@ -3669,9 +3726,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction84
 special ReduceAction
@@ -3708,9 +3766,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction85
 special ReduceAction
@@ -3744,9 +3803,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction86
 special ReduceAction
@@ -3783,9 +3843,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction87
 special ReduceAction
@@ -3822,9 +3883,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction88
 special ReduceAction
@@ -3864,9 +3926,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction89
 special ReduceAction
@@ -3900,9 +3963,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction90
 special ReduceAction
@@ -3939,9 +4003,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction91
 special ReduceAction
@@ -3978,9 +4043,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction92
 special ReduceAction
@@ -4020,9 +4086,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction93
 special ReduceAction
@@ -4059,9 +4126,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction94
 special ReduceAction
@@ -4101,9 +4169,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction95
 special ReduceAction
@@ -4143,9 +4212,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction96
 special ReduceAction
@@ -4188,9 +4258,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction97
 special ReduceAction
@@ -4226,9 +4297,10 @@ special ReduceAction
                                                pexprnode10
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction98
 special ReduceAction
@@ -4267,9 +4339,10 @@ special ReduceAction
                                                pexprnode10
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction99
 special ReduceAction
@@ -4308,9 +4381,10 @@ special ReduceAction
                                                pexprnode10
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction100
 special ReduceAction
@@ -4352,9 +4426,10 @@ special ReduceAction
                                                pexprnode10
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction101
 special ReduceAction
@@ -4393,9 +4468,10 @@ special ReduceAction
                                                pexprnode10
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction102
 special ReduceAction
@@ -4437,9 +4513,10 @@ special ReduceAction
                                                pexprnode10
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction103
 special ReduceAction
@@ -4481,9 +4558,10 @@ special ReduceAction
                                                pexprnode10
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction104
 special ReduceAction
@@ -4528,9 +4606,10 @@ special ReduceAction
                                                pexprnode10
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction105
 special ReduceAction
@@ -4569,9 +4648,10 @@ special ReduceAction
                                                pexprnode10
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction106
 special ReduceAction
@@ -4613,9 +4693,10 @@ special ReduceAction
                                                pexprnode10
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction107
 special ReduceAction
@@ -4657,9 +4738,10 @@ special ReduceAction
                                                pexprnode10
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction108
 special ReduceAction
@@ -4704,9 +4786,10 @@ special ReduceAction
                                                pexprnode10
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction109
 special ReduceAction
@@ -4748,9 +4831,10 @@ special ReduceAction
                                                pexprnode10
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction110
 special ReduceAction
@@ -4795,9 +4879,10 @@ special ReduceAction
                                                pexprnode10
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction111
 special ReduceAction
@@ -4842,9 +4927,10 @@ special ReduceAction
                                                pexprnode10
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction112
 special ReduceAction
@@ -4892,9 +4978,10 @@ special ReduceAction
                                                pexprnode10
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction113
 special ReduceAction
@@ -4927,9 +5014,10 @@ special ReduceAction
                                                pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction114
 special ReduceAction
@@ -4965,9 +5053,10 @@ special ReduceAction
                                                pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction115
 special ReduceAction
@@ -5003,9 +5092,10 @@ special ReduceAction
                                                pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction116
 special ReduceAction
@@ -5044,9 +5134,10 @@ special ReduceAction
                                                pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction117
 special ReduceAction
@@ -5080,9 +5171,10 @@ special ReduceAction
                                                pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction118
 special ReduceAction
@@ -5119,9 +5211,10 @@ special ReduceAction
                                                pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction119
 special ReduceAction
@@ -5158,9 +5251,10 @@ special ReduceAction
                                                pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction120
 special ReduceAction
@@ -5200,9 +5294,10 @@ special ReduceAction
                                                pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction121
 special ReduceAction
@@ -5233,9 +5328,10 @@ special ReduceAction
                                                ptypenode7
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction122
 special ReduceAction
@@ -5269,9 +5365,10 @@ special ReduceAction
                                                ptypenode7
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction123
 special ReduceAction
@@ -5286,9 +5383,10 @@ special ReduceAction
                                                tkwreadablenode3
                                        )
                                        node_list = pablenode1
-                                       p.push(p.go_to(13), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction124
 special ReduceAction
@@ -5306,9 +5404,10 @@ special ReduceAction
                                                tkwreadablenode3
                                        )
                                        node_list = pablenode1
-                                       p.push(p.go_to(13), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction125
 special ReduceAction
@@ -5323,9 +5422,10 @@ special ReduceAction
                                                tkwwritablenode3
                                        )
                                        node_list = pablenode1
-                                       p.push(p.go_to(14), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction126
 special ReduceAction
@@ -5343,9 +5443,10 @@ special ReduceAction
                                                tkwwritablenode3
                                        )
                                        node_list = pablenode1
-                                       p.push(p.go_to(14), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction127
 special ReduceAction
@@ -5355,9 +5456,10 @@ special ReduceAction
                                        var pvisibilitynode1: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
                                        )
                                        node_list = pvisibilitynode1
-                                       p.push(p.go_to(15), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction128
 special ReduceAction
@@ -5372,9 +5474,10 @@ special ReduceAction
                                                tkwprivatenode2
                                        )
                                        node_list = pvisibilitynode1
-                                       p.push(p.go_to(15), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction129
 special ReduceAction
@@ -5389,9 +5492,10 @@ special ReduceAction
                                                tkwprotectednode2
                                        )
                                        node_list = pvisibilitynode1
-                                       p.push(p.go_to(15), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction130
 special ReduceAction
@@ -5406,9 +5510,10 @@ special ReduceAction
                                                tkwintrudenode2
                                        )
                                        node_list = pvisibilitynode1
-                                       p.push(p.go_to(15), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction131
 special ReduceAction
@@ -5422,9 +5527,10 @@ special ReduceAction
                                                tidnode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction132
 special ReduceAction
@@ -5438,9 +5544,10 @@ special ReduceAction
                                                tplusnode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction133
 special ReduceAction
@@ -5454,9 +5561,10 @@ special ReduceAction
                                                tminusnode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction134
 special ReduceAction
@@ -5470,9 +5578,10 @@ special ReduceAction
                                                tstarnode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction135
 special ReduceAction
@@ -5486,9 +5595,10 @@ special ReduceAction
                                                tslashnode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction136
 special ReduceAction
@@ -5502,9 +5612,10 @@ special ReduceAction
                                                tpercentnode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction137
 special ReduceAction
@@ -5518,9 +5629,10 @@ special ReduceAction
                                                teqnode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction138
 special ReduceAction
@@ -5534,9 +5646,10 @@ special ReduceAction
                                                tnenode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction139
 special ReduceAction
@@ -5550,9 +5663,10 @@ special ReduceAction
                                                tlenode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction140
 special ReduceAction
@@ -5566,9 +5680,10 @@ special ReduceAction
                                                tgenode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction141
 special ReduceAction
@@ -5582,9 +5697,10 @@ special ReduceAction
                                                tltnode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction142
 special ReduceAction
@@ -5598,9 +5714,10 @@ special ReduceAction
                                                tgtnode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction143
 special ReduceAction
@@ -5618,9 +5735,10 @@ special ReduceAction
                                                tcbranode3
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction144
 special ReduceAction
@@ -5634,9 +5752,10 @@ special ReduceAction
                                                tstarshipnode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction145
 special ReduceAction
@@ -5654,9 +5773,10 @@ special ReduceAction
                                                tassignnode3
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction146
 special ReduceAction
@@ -5678,9 +5798,10 @@ special ReduceAction
                                                tassignnode4
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction147
 special ReduceAction
@@ -5702,9 +5823,10 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(17), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction148
 special ReduceAction
@@ -5730,9 +5852,10 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(17), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction149
 special ReduceAction
@@ -5751,9 +5874,10 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(17), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction150
 special ReduceAction
@@ -5776,9 +5900,10 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(17), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction151
 special ReduceAction
@@ -5797,9 +5922,10 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(17), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction152
 special ReduceAction
@@ -5822,9 +5948,10 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(17), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction153
 special ReduceAction
@@ -5840,9 +5967,10 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(17), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction154
 special ReduceAction
@@ -5862,9 +5990,10 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(17), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction155
 special ReduceAction
@@ -5879,9 +6008,10 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(18), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction156
 special ReduceAction
@@ -5900,9 +6030,10 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(18), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction157
 special ReduceAction
@@ -5920,9 +6051,10 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(18), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction158
 special ReduceAction
@@ -5944,9 +6076,10 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(18), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction159
 special ReduceAction
@@ -5960,14 +6093,14 @@ special ReduceAction
                                        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(19), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction160
 special ReduceAction
@@ -5982,7 +6115,6 @@ special ReduceAction
                                        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
@@ -5990,9 +6122,10 @@ special ReduceAction
                                        end
                                        listnode3 = concat(listnode3, listnode2)
                                        node_list = listnode3
-                                       p.push(p.go_to(19), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction161
 special ReduceAction
@@ -6004,9 +6137,10 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode1 = new Array[Object]
                                        node_list = listnode1
-                                       p.push(p.go_to(19), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction162
 special ReduceAction
@@ -6017,11 +6151,11 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pparamnode1 = nodearraylist3
-                                       assert pparamnode1 isa nullable AParam
                                        node_list = pparamnode1
-                                       p.push(p.go_to(20), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction163
 special ReduceAction
@@ -6037,9 +6171,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pparamnode1
-                                       p.push(p.go_to(21), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction164
 special ReduceAction
@@ -6058,9 +6193,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pparamnode1
-                                       p.push(p.go_to(21), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction165
 special ReduceAction
@@ -6082,9 +6218,10 @@ special ReduceAction
                                                tdotdotdotnode4
                                        )
                                        node_list = pparamnode1
-                                       p.push(p.go_to(21), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction166
 special ReduceAction
@@ -6098,9 +6235,10 @@ special ReduceAction
                                        assert listnode1 isa Array[Object]
                                        listnode2 = concat(listnode2, listnode1)
                                        node_list = listnode2
-                                       p.push(p.go_to(22), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction167
 special ReduceAction
@@ -6125,9 +6263,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pclosuredeclnode1
-                                       p.push(p.go_to(23), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction168
 special ReduceAction
@@ -6155,9 +6294,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pclosuredeclnode1
-                                       p.push(p.go_to(23), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction169
 special ReduceAction
@@ -6186,9 +6326,10 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pclosuredeclnode1
-                                       p.push(p.go_to(23), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction170
 special ReduceAction
@@ -6220,9 +6361,10 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pclosuredeclnode1
-                                       p.push(p.go_to(23), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction171
 special ReduceAction
@@ -6252,9 +6394,10 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pclosuredeclnode1
-                                       p.push(p.go_to(23), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction172
 special ReduceAction
@@ -6287,9 +6430,10 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pclosuredeclnode1
-                                       p.push(p.go_to(23), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction173
 special ReduceAction
@@ -6304,9 +6448,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(24), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction174
 special ReduceAction
@@ -6323,9 +6468,10 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = ptypenode1
-                                       p.push(p.go_to(25), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction175
 special ReduceAction
@@ -6345,9 +6491,10 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = ptypenode1
-                                       p.push(p.go_to(25), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction176
 special ReduceAction
@@ -6372,9 +6519,10 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = ptypenode1
-                                       p.push(p.go_to(25), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction177
 special ReduceAction
@@ -6402,9 +6550,10 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = ptypenode1
-                                       p.push(p.go_to(25), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction178
 special ReduceAction
@@ -6414,14 +6563,14 @@ special ReduceAction
                                        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(26), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction179
 special ReduceAction
@@ -6432,7 +6581,6 @@ special ReduceAction
                                        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
@@ -6440,9 +6588,10 @@ special ReduceAction
                                        end
                                        listnode3 = concat(listnode3, listnode2)
                                        node_list = listnode3
-                                       p.push(p.go_to(26), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction180
 special ReduceAction
@@ -6453,26 +6602,11 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        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 ReduceAction181
-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(28), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction182
 special ReduceAction
@@ -6483,11 +6617,11 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist2
-                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(29), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction183
 special ReduceAction
@@ -6501,9 +6635,10 @@ special ReduceAction
                                                listnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(29), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction184
 special ReduceAction
@@ -6516,9 +6651,10 @@ special ReduceAction
                                                listnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(29), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction185
 special ReduceAction
@@ -6527,11 +6663,11 @@ special ReduceAction
                                        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(29), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction186
 special ReduceAction
@@ -6549,9 +6685,10 @@ special ReduceAction
                                                listnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction187
 special ReduceAction
@@ -6573,9 +6710,10 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction188
 special ReduceAction
@@ -6594,9 +6732,10 @@ special ReduceAction
                                                listnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(31), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction189
 special ReduceAction
@@ -6619,9 +6758,10 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(31), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction190
 special ReduceAction
@@ -6631,37 +6771,11 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        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 ReduceAction191
-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 ReduceAction192
-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)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction193
 special ReduceAction
@@ -6676,9 +6790,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction194
 special ReduceAction
@@ -6696,9 +6811,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction195
 special ReduceAction
@@ -6714,9 +6830,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction196
 special ReduceAction
@@ -6735,9 +6852,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction197
 special ReduceAction
@@ -6756,9 +6874,10 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction198
 special ReduceAction
@@ -6780,9 +6899,10 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction199
 special ReduceAction
@@ -6796,9 +6916,10 @@ special ReduceAction
                                                tkwabortnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction200
 special ReduceAction
@@ -6814,9 +6935,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction201
 special ReduceAction
@@ -6835,9 +6957,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction202
 special ReduceAction
@@ -6856,9 +6979,10 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction203
 special ReduceAction
@@ -6880,87 +7004,10 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
-       end
-init do end
-end
-private class ReduceAction204
-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 ReduceAction205
-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 ReduceAction206
-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 ReduceAction207
-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 ReduceAction208
-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 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)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction210
 special ReduceAction
@@ -6988,9 +7035,10 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction211
 special ReduceAction
@@ -7015,9 +7063,10 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction212
 special ReduceAction
@@ -7049,9 +7098,10 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction213
 special ReduceAction
@@ -7080,9 +7130,10 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction214
 special ReduceAction
@@ -7103,9 +7154,10 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction215
 special ReduceAction
@@ -7129,9 +7181,10 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction216
 special ReduceAction
@@ -7157,9 +7210,10 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction217
 special ReduceAction
@@ -7182,9 +7236,10 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction218
 special ReduceAction
@@ -7202,9 +7257,10 @@ special ReduceAction
                                                tidnode3
                                        )
                                        node_list = plabelnode1
-                                       p.push(p.go_to(34), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction219
 special ReduceAction
@@ -7214,14 +7270,14 @@ special ReduceAction
                                        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(35), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction220
 special ReduceAction
@@ -7232,7 +7288,6 @@ special ReduceAction
                                        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
@@ -7240,9 +7295,10 @@ special ReduceAction
                                        end
                                        listnode3 = concat(listnode3, listnode2)
                                        node_list = listnode3
-                                       p.push(p.go_to(35), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction221
 special ReduceAction
@@ -7274,9 +7330,10 @@ special ReduceAction
                                                plabelnode7
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction222
 special ReduceAction
@@ -7312,9 +7369,10 @@ special ReduceAction
                                                plabelnode8
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction223
 special ReduceAction
@@ -7343,9 +7401,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction224
 special ReduceAction
@@ -7378,9 +7437,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction225
 special ReduceAction
@@ -7408,9 +7468,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction226
 special ReduceAction
@@ -7442,9 +7503,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction227
 special ReduceAction
@@ -7474,9 +7536,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(37), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction228
 special ReduceAction
@@ -7510,9 +7573,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(37), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction229
 special ReduceAction
@@ -7539,9 +7603,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(37), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction230
 special ReduceAction
@@ -7572,9 +7637,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(37), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction231
 special ReduceAction
@@ -7588,9 +7654,10 @@ special ReduceAction
                                                tidnode2
                                        )
                                        node_list = pclosureidnode1
-                                       p.push(p.go_to(38), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction232
 special ReduceAction
@@ -7604,9 +7671,10 @@ special ReduceAction
                                                tkwbreaknode2
                                        )
                                        node_list = pclosureidnode1
-                                       p.push(p.go_to(38), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction233
 special ReduceAction
@@ -7622,9 +7690,10 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(39), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction234
 special ReduceAction
@@ -7645,9 +7714,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(40), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction235
 special ReduceAction
@@ -7671,9 +7741,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(40), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction236
 special ReduceAction
@@ -7701,9 +7772,10 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(40), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction237
 special ReduceAction
@@ -7734,9 +7806,10 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(40), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction238
 special ReduceAction
@@ -7764,9 +7837,10 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction239
 special ReduceAction
@@ -7791,9 +7865,10 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction240
 special ReduceAction
@@ -7827,9 +7902,10 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction241
 special ReduceAction
@@ -7860,9 +7936,10 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction242
 special ReduceAction
@@ -7890,9 +7967,10 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction243
 special ReduceAction
@@ -7920,9 +7998,10 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction244
 special ReduceAction
@@ -7947,9 +8026,10 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction245
 special ReduceAction
@@ -7983,9 +8063,10 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction246
 special ReduceAction
@@ -8016,9 +8097,10 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction247
 special ReduceAction
@@ -8046,9 +8128,10 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction248
 special ReduceAction
@@ -8062,9 +8145,10 @@ special ReduceAction
                                                tpluseqnode2
                                        )
                                        node_list = passignopnode1
-                                       p.push(p.go_to(42), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction249
 special ReduceAction
@@ -8078,9 +8162,10 @@ special ReduceAction
                                                tminuseqnode2
                                        )
                                        node_list = passignopnode1
-                                       p.push(p.go_to(42), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction250
 special ReduceAction
@@ -8102,9 +8187,10 @@ special ReduceAction
                                                plabelnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction251
 special ReduceAction
@@ -8123,9 +8209,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction252
 special ReduceAction
@@ -8155,9 +8242,10 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(44), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction253
 special ReduceAction
@@ -8183,9 +8271,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(44), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction254
 special ReduceAction
@@ -8215,9 +8304,10 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(44), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction255
 special ReduceAction
@@ -8243,9 +8333,10 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(44), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction256
 special ReduceAction
@@ -8272,34 +8363,10 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(44), node_list)
-       end
-init do end
-end
-private class ReduceAction257
-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(45), node_list)
-       end
-init do end
-end
-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)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction259
 special ReduceAction
@@ -8321,9 +8388,10 @@ special ReduceAction
                                                plabelnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction260
 special ReduceAction
@@ -8342,9 +8410,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction261
 special ReduceAction
@@ -8376,9 +8445,10 @@ special ReduceAction
                                                plabelnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction262
 special ReduceAction
@@ -8407,9 +8477,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction263
 special ReduceAction
@@ -8448,9 +8519,10 @@ special ReduceAction
                                                plabelnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(48), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction264
 special ReduceAction
@@ -8486,9 +8558,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(48), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction265
 special ReduceAction
@@ -8512,9 +8585,10 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction266
 special ReduceAction
@@ -8541,9 +8615,10 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction267
 special ReduceAction
@@ -8563,9 +8638,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction268
 special ReduceAction
@@ -8588,9 +8664,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction269
 special ReduceAction
@@ -8600,89 +8677,11 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        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 ReduceAction270
-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 ReduceAction271
-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]
-                                       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 = pexprnode1
-                                       p.push(p.go_to(51), node_list)
-       end
-init do end
-end
-private class ReduceAction272
-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]
-                                       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)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction273
 special ReduceAction
@@ -8708,22 +8707,10 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
-       end
-init do end
-end
-private class ReduceAction274
-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)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction275
 special ReduceAction
@@ -8762,22 +8749,10 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
-       end
-init do end
-end
-private class ReduceAction276
-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)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction277
 special ReduceAction
@@ -8797,9 +8772,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(53), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction278
 special ReduceAction
@@ -8819,9 +8795,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(53), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction279
 special ReduceAction
@@ -8842,22 +8819,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(53), node_list)
-       end
-init do end
-end
-private class ReduceAction280
-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)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction281
 special ReduceAction
@@ -8876,22 +8841,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
-       end
-init do end
-end
-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)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction283
 special ReduceAction
@@ -8911,9 +8864,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction284
 special ReduceAction
@@ -8933,9 +8887,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction285
 special ReduceAction
@@ -8955,9 +8910,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction286
 special ReduceAction
@@ -8977,9 +8933,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction287
 special ReduceAction
@@ -8999,9 +8956,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction288
 special ReduceAction
@@ -9021,9 +8979,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction289
 special ReduceAction
@@ -9043,9 +9002,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction290
 special ReduceAction
@@ -9065,9 +9025,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction291
 special ReduceAction
@@ -9087,22 +9048,10 @@ special ReduceAction
                                                ptypenode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
-       end
-init do end
-end
-private class ReduceAction292
-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(56), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction293
 special ReduceAction
@@ -9122,9 +9071,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(56), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction294
 special ReduceAction
@@ -9144,22 +9094,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(56), node_list)
-       end
-init do end
-end
-private class ReduceAction295
-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(57), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction296
 special ReduceAction
@@ -9179,9 +9117,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(57), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction297
 special ReduceAction
@@ -9201,9 +9140,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(57), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction298
 special ReduceAction
@@ -9223,22 +9163,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(57), node_list)
-       end
-init do end
-end
-private class ReduceAction299
-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(58), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction300
 special ReduceAction
@@ -9257,9 +9185,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(58), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction301
 special ReduceAction
@@ -9278,22 +9207,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(58), node_list)
-       end
-init do end
-end
-private class ReduceAction302
-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(59), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction303
 special ReduceAction
@@ -9319,9 +9236,10 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(59), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction304
 special ReduceAction
@@ -9345,9 +9263,10 @@ special ReduceAction
                                                tattridnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(59), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction305
 special ReduceAction
@@ -9368,9 +9287,10 @@ special ReduceAction
                                                tattridnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(59), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction306
 special ReduceAction
@@ -9390,9 +9310,10 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction307
 special ReduceAction
@@ -9409,168 +9330,10 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
-end
-private class ReduceAction308
-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]
-                                       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 ReduceAction309
-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]
-                                       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 ReduceAction310
-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]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               null,
-                                               tkwsupernode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
-       end
-init do end
-end
-private class ReduceAction311
-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]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               pqualifiednode2,
-                                               tkwsupernode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
-       end
-init do end
-end
-private class ReduceAction312
-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]
-                                       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 ReduceAction313
-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]
-                                       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
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction314
 special ReduceAction
@@ -9592,9 +9355,10 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction315
 special ReduceAction
@@ -9625,9 +9389,10 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction316
 special ReduceAction
@@ -9652,9 +9417,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction317
 special ReduceAction
@@ -9679,9 +9445,10 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction318
 special ReduceAction
@@ -9697,9 +9464,10 @@ special ReduceAction
                                                listnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction319
 special ReduceAction
@@ -9713,9 +9481,10 @@ special ReduceAction
                                                tkwselfnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction320
 special ReduceAction
@@ -9729,9 +9498,10 @@ special ReduceAction
                                                tkwtruenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction321
 special ReduceAction
@@ -9745,9 +9515,10 @@ special ReduceAction
                                                tkwfalsenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction322
 special ReduceAction
@@ -9761,9 +9532,10 @@ special ReduceAction
                                                tkwnullnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction323
 special ReduceAction
@@ -9777,9 +9549,10 @@ special ReduceAction
                                                tnumbernode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction324
 special ReduceAction
@@ -9793,9 +9566,10 @@ special ReduceAction
                                                tfloatnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction325
 special ReduceAction
@@ -9809,9 +9583,10 @@ special ReduceAction
                                                tcharnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction326
 special ReduceAction
@@ -9825,37 +9600,10 @@ special ReduceAction
                                                tstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
-       end
-init do end
-end
-private class ReduceAction327
-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(60), node_list)
-       end
-init do end
-end
-private class ReduceAction328
-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(60), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction329
 special ReduceAction
@@ -9884,9 +9632,10 @@ special ReduceAction
                                                ptypenode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction330
 special ReduceAction
@@ -9920,9 +9669,10 @@ special ReduceAction
                                                tkwnullnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction331
 special ReduceAction
@@ -9944,9 +9694,10 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(61), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction332
 special ReduceAction
@@ -9972,9 +9723,10 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(61), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction333
 special ReduceAction
@@ -9987,9 +9739,7 @@ special ReduceAction
                                        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
@@ -9997,9 +9747,10 @@ special ReduceAction
                                                listnode3.add(pexprnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(62), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction334
 special ReduceAction
@@ -10013,34 +9764,10 @@ special ReduceAction
                                                tstartstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(63), node_list)
-       end
-init do end
-end
-private class ReduceAction335
-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(64), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction336
 special ReduceAction
@@ -10054,9 +9781,10 @@ special ReduceAction
                                                tmidstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(65), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction337
 special ReduceAction
@@ -10070,9 +9798,10 @@ special ReduceAction
                                                tendstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(66), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction338
 special ReduceAction
@@ -10086,14 +9815,14 @@ special ReduceAction
                                        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(67), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction339
 special ReduceAction
@@ -10108,7 +9837,6 @@ special ReduceAction
                                        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
@@ -10116,23 +9844,10 @@ special ReduceAction
                                        end
                                        listnode3 = concat(listnode3, listnode2)
                                        node_list = listnode3
-                                       p.push(p.go_to(67), node_list)
-       end
-init do end
-end
-private class ReduceAction340
-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(67), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction341
 special ReduceAction
@@ -10141,210 +9856,96 @@ special ReduceAction
                                        var node_list: nullable Object = null
                                        var listnode1 = new Array[Object]
                                        node_list = listnode1
-                                       p.push(p.go_to(67), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
-private class ReduceAction342
+private class ReduceAction344
 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
+                                       var pexprnode1 = nodearraylist1
                                        if pexprnode1 != null then
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(68), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
-private class ReduceAction343
+private class ReduceAction349
 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
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
-                                       p.push(p.go_to(68), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
-private class ReduceAction344
+private class ReduceAction350
 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 pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       if pexprnode1 != null then
-                                               listnode2.add(pexprnode1)
-                                       end
+                                       var listnode1 = nodearraylist2
+                                       assert listnode1 isa Array[Object]
+                                       listnode2 = concat(listnode2, listnode1)
                                        node_list = listnode2
-                                       p.push(p.go_to(68), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
-private class ReduceAction345
+private class ReduceAction351
 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(68), node_list)
-       end
-init do end
-end
-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)
+                                       var listnode2 = new Array[Object]
+                                       var listnode1 = nodearraylist1
+                                       assert listnode1 isa Array[Object]
+                                       listnode2 = concat(listnode2, listnode1)
+                                       node_list = listnode2
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
-private class ReduceAction347
+private class ReduceAction352
 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)
+                                       var tidnode1 = nodearraylist1
+                                       if tidnode1 != null then
+                                               listnode2.add(tidnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(69), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
-private class ReduceAction348
-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
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
-                                       p.push(p.go_to(69), node_list)
-       end
-init do end
-end
-private class ReduceAction349
-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(70), node_list)
-       end
-init do end
-end
-private class ReduceAction350
-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]
-                                       listnode2 = concat(listnode2, listnode1)
-                                       node_list = listnode2
-                                       p.push(p.go_to(71), node_list)
-       end
-init do end
-end
-private class ReduceAction351
-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]
-                                       listnode2 = concat(listnode2, listnode1)
-                                       node_list = listnode2
-                                       p.push(p.go_to(71), node_list)
-       end
-init do end
-end
-private class ReduceAction352
-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(72), node_list)
-       end
-init do end
-end
-private class ReduceAction353
+private class ReduceAction353
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -10358,15 +9959,15 @@ special ReduceAction
                                        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)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction354
 special ReduceAction
@@ -10382,9 +9983,10 @@ special ReduceAction
                                                tclassidnode3
                                        )
                                        node_list = pqualifiednode1
-                                       p.push(p.go_to(73), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction355
 special ReduceAction
@@ -10404,9 +10006,10 @@ special ReduceAction
                                                tclassidnode4
                                        )
                                        node_list = pqualifiednode1
-                                       p.push(p.go_to(73), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction356
 special ReduceAction
@@ -10423,9 +10026,10 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pqualifiednode1
-                                       p.push(p.go_to(73), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction357
 special ReduceAction
@@ -10436,11 +10040,11 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var tidnode1 = nodearraylist1
-                                       assert tidnode1 isa nullable TId
                                        node_list = tidnode1
-                                       p.push(p.go_to(74), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction358
 special ReduceAction
@@ -10451,11 +10055,11 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var tclassidnode1 = nodearraylist1
-                                       assert tclassidnode1 isa nullable TClassid
                                        node_list = tclassidnode1
-                                       p.push(p.go_to(75), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction359
 special ReduceAction
@@ -10463,19 +10067,10 @@ special ReduceAction
        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)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction361
 special ReduceAction
@@ -10491,9 +10086,10 @@ special ReduceAction
                                                listnode3
                                        )
                                        node_list = pdocnode1
-                                       p.push(p.go_to(77), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction362
 special ReduceAction
@@ -10510,6063 +10106,107 @@ special ReduceAction
                                                listnode3
                                        )
                                        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)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 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
-private class ReduceAction367
-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(79), node_list)
-       end
-init do end
-end
-private class ReduceAction368
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       p.push(p.go_to(79), node_list)
-       end
-init do end
-end
-private class ReduceAction369
-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(80), node_list)
-       end
-init do end
-end
-private class ReduceAction370
-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 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,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(81), node_list)
-       end
-init do end
-end
-private class ReduceAction371
-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 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 ReduceAction372
-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 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,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(81), node_list)
-       end
-init do end
-end
-private class ReduceAction373
-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 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 nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode8 = nodearraylist8
-                                       assert pexprnode8 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(81), node_list)
-       end
-init do end
-end
-private class ReduceAction375
-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 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,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(81), node_list)
-       end
-init do end
-end
-private class ReduceAction376
-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 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,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(81), node_list)
-       end
-init do end
-end
-private class ReduceAction377
-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 pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(81), node_list)
-       end
-init do end
-end
-private class ReduceAction378
-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 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,
-                                               psignaturenode7,
-                                               tstringnode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(81), node_list)
-       end
-init do end
-end
-private class ReduceAction379
-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 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,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(81), node_list)
-       end
-init do end
-end
-private class ReduceAction380
-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]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
-                                               ptypenode3,
-                                               listnode5
-                                       )
-                                       node_list = psignaturenode1
-                                       p.push(p.go_to(82), node_list)
-       end
-init do end
-end
-private class ReduceAction381
-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]
-                                       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 = psignaturenode1
-                                       p.push(p.go_to(82), node_list)
-       end
-init do end
-end
-private class ReduceAction382
-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(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 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 = psignaturenode1
-                                       p.push(p.go_to(82), node_list)
-       end
-init do end
-end
-private class ReduceAction384
-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(83), node_list)
-       end
-init do end
-end
-private class ReduceAction385
-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(83), node_list)
-       end
-init do end
-end
-private class ReduceAction386
-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 ReduceAction387
-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]
-                                       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 = pexprnode1
-                                       p.push(p.go_to(84), node_list)
-       end
-init do end
-end
-private class ReduceAction388
-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]
-                                       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
-private class ReduceAction389
-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 ReduceAction390
-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(85), node_list)
-       end
-init do end
-end
-private class ReduceAction391
-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 ReduceAction392
-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(86), node_list)
-       end
-init do end
-end
-private class ReduceAction393
-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(86), node_list)
-       end
-init do end
-end
-private class ReduceAction394
-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(86), node_list)
-       end
-init do end
-end
-private class ReduceAction395
-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 ReduceAction396
-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(87), node_list)
-       end
-init do end
-end
-private class ReduceAction397
-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 ReduceAction398
-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(88), node_list)
-       end
-init do end
-end
-private class ReduceAction399
-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(88), node_list)
-       end
-init do end
-end
-private class ReduceAction400
-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(88), node_list)
-       end
-init do end
-end
-private class ReduceAction401
-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(88), node_list)
-       end
-init do end
-end
-private class ReduceAction402
-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(88), node_list)
-       end
-init do end
-end
-private class ReduceAction403
-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(88), node_list)
-       end
-init do end
-end
-private class ReduceAction404
-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(88), node_list)
-       end
-init do end
-end
-private class ReduceAction405
-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(88), node_list)
-       end
-init do end
-end
-private class ReduceAction406
-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(88), node_list)
-       end
-init do end
-end
-private class ReduceAction407
-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 ReduceAction408
-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(89), node_list)
-       end
-init do end
-end
-private class ReduceAction409
-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(89), node_list)
-       end
-init do end
-end
-private class ReduceAction410
-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 ReduceAction411
-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(90), node_list)
-       end
-init do end
-end
-private class ReduceAction412
-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(90), node_list)
-       end
-init do end
-end
-private class ReduceAction413
-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(90), node_list)
-       end
-init do end
-end
-private class ReduceAction414
-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(91), node_list)
-       end
-init do end
-end
-private class ReduceAction415
-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(91), node_list)
-       end
-init do end
-end
-private class ReduceAction416
-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(91), node_list)
-       end
-init do end
-end
-private class ReduceAction417
-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(92), node_list)
-       end
-init do end
-end
-private class ReduceAction418
-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]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               null,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(92), node_list)
-       end
-init do end
-end
-private class ReduceAction419
-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(92), node_list)
-       end
-init do end
-end
-private class ReduceAction420
-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(92), node_list)
-       end
-init do end
-end
-private class ReduceAction421
-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(93), node_list)
-       end
-init do end
-end
-private class ReduceAction422
-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(93), node_list)
-       end
-init do end
-end
-private class ReduceAction423
-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]
-                                       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
-private class ReduceAction424
-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]
-                                       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
-private class ReduceAction425
-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]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               null,
-                                               tkwsupernode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(93), node_list)
-       end
-init do end
-end
-private class ReduceAction426
-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]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               pqualifiednode2,
-                                               tkwsupernode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(93), node_list)
-       end
-init do end
-end
-private class ReduceAction427
-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]
-                                       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
-private class ReduceAction428
-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]
-                                       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
-private class ReduceAction429
-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]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               tidnode4,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(93), node_list)
-       end
-init do end
-end
-private class ReduceAction430
-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(93), node_list)
-       end
-init do end
-end
-private class ReduceAction431
-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(93), node_list)
-       end
-init do end
-end
-private class ReduceAction432
-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(93), node_list)
-       end
-init do end
-end
-private class ReduceAction433
-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(93), node_list)
-       end
-init do end
-end
-private class ReduceAction434
-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(93), node_list)
-       end
-init do end
-end
-private class ReduceAction435
-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(93), node_list)
-       end
-init do end
-end
-private class ReduceAction436
-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(93), node_list)
-       end
-init do end
-end
-private class ReduceAction437
-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(93), node_list)
-       end
-init do end
-end
-private class ReduceAction438
-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(93), node_list)
-       end
-init do end
-end
-private class ReduceAction439
-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(93), node_list)
-       end
-init do end
-end
-private class ReduceAction440
-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(93), node_list)
-       end
-init do end
-end
-private class ReduceAction441
-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(93), node_list)
-       end
-init do end
-end
-private class ReduceAction442
-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(94), node_list)
-       end
-init do end
-end
-private class ReduceAction443
-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(94), node_list)
-       end
-init do end
-end
-private class ReduceAction444
-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(94), node_list)
-       end
-init do end
-end
-private class ReduceAction445
-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(94), node_list)
-       end
-init do end
-end
-private class ReduceAction446
-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(95), node_list)
-       end
-init do end
-end
-private class ReduceAction447
-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(95), node_list)
-       end
-init do end
-end
-private class ReduceAction448
-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(95), node_list)
-       end
-init do end
-end
-private class ReduceAction449
-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(95), 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 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(95), 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 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(95), 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 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(95), 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 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(95), 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 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(95), 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 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(95), 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 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(95), 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 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(95), 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 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(95), 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 nodearraylist1 = p.pop
-                                       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 ReduceAction460
-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(95), 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 nodearraylist1 = p.pop
-                                       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 ReduceAction462
-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(95), 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 nodearraylist1 = p.pop
-                                       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 ReduceAction464
-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(95), 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 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]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(95), 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 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]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(95), 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 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]
-                                       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 = pexprnode1
-                                       p.push(p.go_to(95), 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 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]
-                                       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(95), 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 nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tkwsupernode3 = nodearraylist1
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               null,
-                                               tkwsupernode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(95), 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 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 = pexprnode1
-                                       p.push(p.go_to(95), 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 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]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(95), 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 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]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(95), 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 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(96), 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 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
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
-                                       p.push(p.go_to(96), 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 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 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 = pclosuredefnode1
-                                       p.push(p.go_to(97), 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 nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var 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 = pclosuredefnode1
-                                       p.push(p.go_to(97), 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 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(97), 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 nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var 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(97), 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 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(97), 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 nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode7 = nodearraylist6
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               null,
-                                               pexprnode7,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(97), 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 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(98), 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 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(99), 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 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(99), 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 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(99), 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 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 ReduceAction486
-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(100), 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 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(100), 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 nodearraylist7 = p.pop
-                                       var 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]
-                                       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(100), 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 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]
-                                       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(100), 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 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]
-                                       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(100), 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 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(100), 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 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 nodearraylist7 = p.pop
-                                       var 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]
-                                       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 = pexprnode1
-                                       p.push(p.go_to(100), 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 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]
-                                       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 = pexprnode1
-                                       p.push(p.go_to(100), 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 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]
-                                       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 ReduceAction496
-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 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 = 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(101), 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 nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var 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(102), 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 nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var plabelnode4 = nodearraylist3
-                                       assert plabelnode4 isa nullable ALabel
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               plabelnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(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(103), 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 nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var plabelnode6 = nodearraylist7
-                                       assert plabelnode6 isa nullable ALabel
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(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(104), 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 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 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 = pexprnode1
-                                       p.push(p.go_to(105), 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 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(105), 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 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(106), 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 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(106), 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 nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(107), 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 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]
-                                       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 = pexprnode1
-                                       p.push(p.go_to(107), 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 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]
-                                       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(107), 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 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]
-                                       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 = pexprnode1
-                                       p.push(p.go_to(107), 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(108), 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 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]
-                                       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 = pexprnode1
-                                       p.push(p.go_to(108), 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 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]
-                                       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(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 ReduceAction520
-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(111), 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 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]
-                                       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 = pexprnode1
-                                       p.push(p.go_to(111), 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 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]
-                                       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(111), 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 nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(112), 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 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(112), 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 pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(113), 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 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(113), 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 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(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 ReduceAction529
-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(114), 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 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(114), 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 nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(115), 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 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(115), 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 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(115), 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 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(115), 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 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(115), 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 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(115), 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 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(115), 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 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(115), 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 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(115), 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 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(115), 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 nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(116), 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 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(116), 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 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(116), 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 nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(117), 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 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(117), 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 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(117), 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 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(117), 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 nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(118), 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 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(118), 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 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(118), 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 nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(119), 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 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]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               null,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(119), 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 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(119), 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 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(119), 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 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(120), 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 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(120), 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 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]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(120), 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 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]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(120), 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 nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tkwsupernode3 = nodearraylist1
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               null,
-                                               tkwsupernode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(120), 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 nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pqualifiednode2 = nodearraylist1
-                                       assert pqualifiednode2 isa nullable AQualified
-                                       var tkwsupernode3 = nodearraylist2
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               pqualifiednode2,
-                                               tkwsupernode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(120), 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 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]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(120), 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 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]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(120), 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 nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
-                                               pexprnode2,
-                                               listnode4,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(120), 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 nodearraylist7 = p.pop
-                                       var 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]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               tidnode4,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(120), 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 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(120), 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 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(120), 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 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(120), 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 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(120), 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 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(120), 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 tfloatnode2 = nodearraylist1
-                                       assert tfloatnode2 isa nullable TFloat
-                                       var pexprnode1: nullable AFloatExpr = new AFloatExpr.init_afloatexpr(
-                                               tfloatnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(120), 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 tcharnode2 = nodearraylist1
-                                       assert tcharnode2 isa nullable TChar
-                                       var pexprnode1: nullable ACharExpr = new ACharExpr.init_acharexpr(
-                                               tcharnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(120), 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 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(120), 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 nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(120), 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 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(120), 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 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(120), 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 nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(121), 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 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]
-                                       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 = pexprnode1
-                                       p.push(p.go_to(121), 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 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]
-                                       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(121), 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 nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(122), 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 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(122), 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 nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(123), 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 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(123), 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 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(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 ReduceAction585
-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(124), 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 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(124), 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 nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(125), 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 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(125), 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 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(125), 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 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(125), 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 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(125), 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 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(125), 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 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(125), 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 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(125), 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 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(125), 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 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(125), 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 nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(126), 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 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(126), 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 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(126), 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 nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(127), 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 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(127), 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 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(127), 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 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(127), 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 nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(128), 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 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(128), 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 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(128), 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 nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(129), 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 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]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               null,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(129), 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 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 = nodearraylist3
-                                       assert tattridnode4 isa nullable TAttrid
-                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
-                                               tkwissetnode2,
-                                               pexprnode3,
-                                               tattridnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(129), 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 nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist2
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
-                                               pexprnode2,
-                                               tattridnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(130), 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 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 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist3
-                                       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(130), 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 nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tkwsupernode3 = nodearraylist1
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               null,
-                                               tkwsupernode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(130), 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 nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pqualifiednode2 = nodearraylist1
-                                       assert pqualifiednode2 isa nullable AQualified
-                                       var tkwsupernode3 = nodearraylist2
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               pqualifiednode2,
-                                               tkwsupernode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(130), 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 nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tkwinitnode3 = nodearraylist2
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(130), 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 nodearraylist7 = p.pop
-                                       var 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]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               tidnode4,
-                                               listnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(130), 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 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(130), 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 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(130), 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 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(130), 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 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(130), 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 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(130), 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 tfloatnode2 = nodearraylist1
-                                       assert tfloatnode2 isa nullable TFloat
-                                       var pexprnode1: nullable AFloatExpr = new AFloatExpr.init_afloatexpr(
-                                               tfloatnode2
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(130), 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 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(130), 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 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(130), 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 nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(130), 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 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(130), 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 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(130), node_list)
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       node_list = null
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
-private class ReduceAction627
+private class ReduceAction365
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode1 = nodearraylist1
+                                       node_list = pdocnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+       var _goto: Int
+       init(g: Int) do _goto = g
+end
+private class ReduceAction366
 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 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(131), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
-private class ReduceAction628
+private class ReduceAction367
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var pexprnode1: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(131), node_list)
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
-private class ReduceAction629
+private class ReduceAction609
 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 = nodearraylist1
-                                       assert pexprnode1 isa nullable AExpr
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tattridnode4 = nodearraylist3
+                                       assert tattridnode4 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode4
+                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(132), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
-private class ReduceAction630
+private class ReduceAction610
 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]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var listnode6 = nodearraylist6
-                                       assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                       var tattridnode3 = nodearraylist2
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
                                                pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode7
+                                               tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(132), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
-private class ReduceAction631
+private class ReduceAction611
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16575,76 +10215,54 @@ special ReduceAction
                                        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
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist2
                                        assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist2
+                                       var listnode4 = nodearraylist3
                                        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
+                                               listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(132), 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(133), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
-private class ReduceAction633
+private class ReduceAction614
 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
+                                       var tkwinitnode3 = nodearraylist2
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var listnode4 = nodearraylist3
                                        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(
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
                                                pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode7
+                                               tkwinitnode3,
+                                               listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(133), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
-private class ReduceAction634
+private class ReduceAction627
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16652,28 +10270,25 @@ special ReduceAction
                                        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]
-                                       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
+                                       var pexprnode1 = nodearraylist1
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+       var _goto: Int
+       init(g: Int) do _goto = g
+end
+private class ReduceAction628
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var pexprnode1: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(133), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction635
 special ReduceAction
@@ -16683,14 +10298,14 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var pimportnode1 = nodearraylist1
-                                       assert pimportnode1 isa nullable AImport
                                        if pimportnode1 != null then
                                                listnode2.add(pimportnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(134), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction636
 special ReduceAction
@@ -16703,15 +10318,15 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        var pimportnode2 = nodearraylist2
-                                       assert pimportnode2 isa nullable AImport
                                        listnode3 = concat(listnode3, listnode1)
                                        if pimportnode2 != null then
                                                listnode3.add(pimportnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(134), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction637
 special ReduceAction
@@ -16721,14 +10336,14 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var pclassdefnode1 = nodearraylist1
-                                       assert pclassdefnode1 isa nullable AClassdef
                                        if pclassdefnode1 != null then
                                                listnode2.add(pclassdefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(135), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction638
 special ReduceAction
@@ -16741,15 +10356,15 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        var pclassdefnode2 = nodearraylist2
-                                       assert pclassdefnode2 isa nullable AClassdef
                                        listnode3 = concat(listnode3, listnode1)
                                        if pclassdefnode2 != null then
                                                listnode3.add(pclassdefnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(135), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction639
 special ReduceAction
@@ -16759,14 +10374,14 @@ special ReduceAction
                                        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(136), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction640
 special ReduceAction
@@ -16779,15 +10394,15 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        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(136), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction641
 special ReduceAction
@@ -16797,14 +10412,14 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var psuperclassnode1 = nodearraylist1
-                                       assert psuperclassnode1 isa nullable ASuperclass
                                        if psuperclassnode1 != null then
                                                listnode2.add(psuperclassnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(137), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction642
 special ReduceAction
@@ -16817,53 +10432,15 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        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(137), 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 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(138), 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 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
-                                       listnode3 = concat(listnode3, listnode1)
-                                       if ppropdefnode2 != null then
-                                               listnode3.add(ppropdefnode2)
-                                       end
-                                       node_list = listnode3
-                                       p.push(p.go_to(138), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction645
 special ReduceAction
@@ -16873,14 +10450,14 @@ special ReduceAction
                                        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)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction646
 special ReduceAction
@@ -16893,15 +10470,15 @@ special ReduceAction
                                        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)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction647
 special ReduceAction
@@ -16911,14 +10488,14 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var pparamnode1 = nodearraylist1
-                                       assert pparamnode1 isa nullable AParam
                                        if pparamnode1 != null then
                                                listnode2.add(pparamnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(140), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction648
 special ReduceAction
@@ -16931,15 +10508,15 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        var pparamnode2 = nodearraylist2
-                                       assert pparamnode2 isa nullable AParam
                                        listnode3 = concat(listnode3, listnode1)
                                        if pparamnode2 != null then
                                                listnode3.add(pparamnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(140), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction649
 special ReduceAction
@@ -16949,14 +10526,14 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var pclosuredeclnode1 = nodearraylist1
-                                       assert pclosuredeclnode1 isa nullable AClosureDecl
                                        if pclosuredeclnode1 != null then
                                                listnode2.add(pclosuredeclnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(141), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction650
 special ReduceAction
@@ -16969,32 +10546,15 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        var pclosuredeclnode2 = nodearraylist2
-                                       assert pclosuredeclnode2 isa nullable AClosureDecl
                                        listnode3 = concat(listnode3, listnode1)
                                        if pclosuredeclnode2 != null then
                                                listnode3.add(pclosuredeclnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(141), 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 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(142), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction652
 special ReduceAction
@@ -17007,32 +10567,15 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        var ptypenode2 = nodearraylist2
-                                       assert ptypenode2 isa nullable AType
                                        listnode3 = concat(listnode3, listnode1)
                                        if ptypenode2 != null then
                                                listnode3.add(ptypenode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(142), 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 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(143), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction654
 special ReduceAction
@@ -17045,30 +10588,15 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        var pexprnode2 = nodearraylist2
-                                       assert pexprnode2 isa nullable AExpr
                                        listnode3 = concat(listnode3, listnode1)
                                        if pexprnode2 != null then
                                                listnode3.add(pexprnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(143), 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 nodearraylist1 = p.pop
-                                       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(144), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction656
 special ReduceAction
@@ -17085,64 +10613,10 @@ special ReduceAction
                                        listnode3 = concat(listnode3, listnode1)
                                        listnode3 = concat(listnode3, listnode2)
                                        node_list = listnode3
-                                       p.push(p.go_to(144), 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 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(145), 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 nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode1 = nodearraylist1
-                                       assert listnode1 isa Array[Object]
-                                       var pexprnode2 = nodearraylist2
-                                       assert pexprnode2 isa nullable AExpr
-                                       listnode3 = concat(listnode3, listnode1)
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
-                                       node_list = listnode3
-                                       p.push(p.go_to(145), 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 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(146), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction660
 special ReduceAction
@@ -17155,15 +10629,15 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        var tidnode2 = nodearraylist2
-                                       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(146), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction661
 special ReduceAction
@@ -17173,14 +10647,14 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var tcommentnode1 = nodearraylist1
-                                       assert tcommentnode1 isa nullable TComment
                                        if tcommentnode1 != null then
                                                listnode2.add(tcommentnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(147), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction662
 special ReduceAction
@@ -17193,15 +10667,15 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        var tcommentnode2 = nodearraylist2
-                                       assert tcommentnode2 isa nullable TComment
                                        listnode3 = concat(listnode3, listnode1)
                                        if tcommentnode2 != null then
                                                listnode3.add(tcommentnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(147), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction663
 special ReduceAction
@@ -17211,14 +10685,14 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var teolnode1 = nodearraylist1
-                                       assert teolnode1 isa nullable TEol
                                        if teolnode1 != null then
                                                listnode2.add(teolnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(148), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end
 private class ReduceAction664
 special ReduceAction
@@ -17231,13 +10705,13 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        var teolnode2 = nodearraylist2
-                                       assert teolnode2 isa nullable TEol
                                        listnode3 = concat(listnode3, listnode1)
                                        if teolnode2 != null then
                                                listnode3.add(teolnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(148), node_list)
+                                       p.push(p.go_to(_goto), node_list)
        end
-init do end
+       var _goto: Int
+       init(g: Int) do _goto = g
 end